假設我有三個聽衆指向(this)的所有聽衆。因此,如果我按下任何按鈕,它將從活動的開始處開始,而不管按鈕是否被按下?Onclick Android的聽衆
0
A
回答
3
不,它會繼續執行您的活動的覆蓋方法onClick()
。
listeners point to (this)
你必須要實現onClickListener到您的活動將覆蓋onClick()
要驗證已單擊的觀點,你必須做一些像
@Override
public void onClick(View v)
{
if(v== controlName)
// controlName is clicked
}
-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!");
}
});
}
}
希望它能幫助。乾杯
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;
}
}
哦....得到它的伴侶感謝名單...我可以使用view.getID()來區分按鈕儀式?在這種情況下,這些按鈕ID將在所有設備中保持不變? – 2012-04-23 07:30:54
您可以在佈局XML中定義ID。或者,以編程方式分配它們,所以是的,總是一樣的。 – Simon 2012-04-23 07:35:11