我的Textviews
页中有多个activity_main.xml
。
我只声明了一个OnClickListener
用于所有Textview,如下所示:
public class NumbersClickListener implements View.OnClickListener {
String text = "";
@Override
public void onClick(View view){
Toast.makeText(view.getContext(),"Hi", Toast.LENGTH_SHORT).show();
}
}
然后,我想从多个视图调用此方法。如下代码:
TextView textview1 = (TextView) findViewById(R.id.textview1);
textview1 .setOnClickListener(clickListener);
TextView textview1 = (TextView) findViewById(R.id.textview2);
textview2 .setOnClickListener(clickListener);
那么如何为不同的视图制作不同的Toast?
答案 0 :(得分:4)
您可以找到通过onClick(View view)
方法单击的当前视图,
@Override
public void onClick(View view){
if(view.getId() == R.id.textView1){
Toast.makeText(view.getContext(),"Hi First", Toast.LENGTH_SHORT).show();
}
else if(view.getId() == R.id.textView2){
Toast.makeText(view.getContext(),"Hi Second", Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:1)
您可以使活动实现View.OnClickListener
界面并覆盖onClick()
。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
.....................
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.textview1:
//
break;
case R.id.textview1:
//
break;
}
}
对于每个视图,您都可以这样设置侦听器:
textview1.setOnClickListener(this);
另一种方法是定义自定义侦听器:
View.OnClickListener myCustomLIstener = new View.OnClickListener() {
public void onClick(View v) {
switch(v.getId()) {
case R.id.view1:
//
break;
case R.id.view2:
//
break;
}
};
并设置它:
textview1.setOnClickListener(myCustomLIstener);