すべてのリスナーが(this)を指す3つのボタンがあると仮定します。では、ボタンのいずれかを押すと、ボタンが押されているかどうかに関係なく、アクティビティの最初から開始されますか?
質問する
144 次
3 に答える
3
onClick()
いいえ、 Activity のメソッドをオーバーライドします。
listeners point to (this)
オーバーライドする onClickListener をアクティビティに実装する必要がありますonClick()
どのビューがクリックされたかを確認するには、次のようにする必要があります
@Override
public void onClick(View v)
{
if(v== controlName)
// controlName is clicked
}
于 2012-04-23T07:26:12.843 に答える
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;
}
}
于 2012-04-23T07:40:14.723 に答える
-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!");
}
});
}
}
それが役に立てば幸い。乾杯
于 2012-04-23T07:36:02.927 に答える