假设我有三个按钮,其所有听众都指向(this)。因此,如果我按下任何一个按钮,它将从活动开始时开始,而不管按下按钮?
答案 0 :(得分:3)
不,它将继续您的活动的覆盖方法onClick()
。
listeners point to (this)
您必须对您的活动实施onClickListener,这将覆盖onClick()
要验证哪个视图已被点击,您必须执行类似
的操作@Override
public void onClick(View v)
{
if(v== controlName)
// controlName is clicked
}
答案 1 :(得分:0)
你可以做的是使用一个开关盒,并了解点击的按钮是什么。
试试这个:
class stuff extends Activity implements onClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// do something
break;
case R.id.button2:
// do something else
break;
case R.id.button3:
// do yet another thing
break;
default:
// do nothing
break;
}
}
答案 2 :(得分:-1)
令人困惑的问题......
无论如何,这是一个听众的例子。
public class MyClass extends Activity {
private Button firstBtn;
private Button secondBtn;
private Button thirdBtn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
firstBtn = (Button) findViewById(R.id.firstBtn);
secondBtn = (Button) findViewById(R.id.secondBtn);
thirdBtn = (Button) findViewById(R.id.thirdBtn);
firstBtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.d("MyClass", "first button clicked!");
}
});
secondBtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.d("MyClass", "second button clicked!");
}
});
thirdBtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Log.d("MyClass", "third button clicked!");
}
});
}
}
希望它有所帮助。干杯