뷰, 수신기 등 내 머리를 감싸려고합니다. 버튼과 단추 두 개로 된 활동이 있습니다. 내 문제는 뷰와 리스너를 완전히 감싸고있어 작동하는 switch 문을 생성 할 수 없다는 것입니다.Switch 문을 사용하여 단추 처리 클릭
예를 들어, 단일 리스너를 만들고 어쨌든 어떤 버튼을 클릭했는지 확인하는 데 사용하고 싶습니다. 그럼 어떻게 든 내 스위치 문을 클릭 한 버튼의 ID를 사용하지만, 온라인으로 찾은 모든 모든 버튼에 대한 별도의 리스너를 사용하고 어떻게 든 Switch 문에 인수로보기를 사용하는 것 같습니다.
아래 코드가 정확하지 않다는 것을 알고 있지만 위의 작업을 수행하기 위해 필요한 변경 사항을 찾고 있습니다.
어떤 버튼을 클릭했는지에 따라 MediaPlayer를 제어하고 싶습니다. 나는 가지고있다 :
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}
});
궁극적으로 나는 가장 stighforward 방법은 어떤 버튼을 클릭했는지 전환하고 싶습니다. 내 혼란의 큰 부분은 onClickListeners 및 Views가이 컨텍스트에서 사용되는 방식에서 비롯된 것이라고 생각합니다.
는예 :
//make your class implement OnClickListener
public class MyClass implements OnClickListener{
...
//Create your buttons and set their onClickListener to "this"
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(this);
Button b2 = (Button) findViewById(R.id.buttonstop);
b2.setOnClickListener(this);
...
//implement the onClick method here
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}
}
자세한 내용은 Android Developers > Handling UI Events를 참조
}이 달성의
이 * 월 *이를 통해 문 폭포 전환 내가 뭘 찾고 있었는지 .. 한 가지 질문 : 내 수업은 내 APK에서 세 번째 활동이므로 이미 정의 : public class Activity3 그것은 별도의 활동이므로 활동을 확장합니다.이 활동에서 도구를 사용할 수 있습니까? 수업? – user615525
@ user615525 네, 그것을 선언 할 수 있어야합니다 :'public class Activity3 extends Activity extends OnClickListener' – dogbane