Android – 多个OnClickListener?

我有4张图片 我们应该可以点击这些图片。 我想知道如果我必须创build4个OnClickListener ,或者有另一种方法来正确地做到这一点?

 public class NavigateActivity extends Activity implements OnClickListener { // images private ImageView phone; private ImageView bookings; private ImageView settings; private ImageView pictures; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.navigate); phone = (ImageView) findViewById(R.navigate.callcenter); phone.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (v == phone) { AlertDialog alertDialog = new AlertDialog.Builder(NavigateActivity.this).create(); alertDialog.setTitle("Attention"); alertDialog.setMessage("Etes-vous sur de vouloir appeler le Call center"); alertDialog.setButton("Oui", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:1232456789")); startActivity(callIntent); } }); alertDialog.setButton2("Non", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertDialog.show(); } } }); } @Override public void onClick(View v) { // TODO Auto-generated method stub } } 

Solutions Collecting From Web of "Android – 多个OnClickListener?"

你可以这样做,

 phone.setOnClickListener(this); bookings.setOnClickListener(this); settings.setOnClickListener(this); pictures.setOnClickListener(this); 

在onClick()方法中,

  @Override public void onClick(View v) { if(v == phone){ // your stuff } else if(v == bookings){ // your stuff } else if(v == settings){ // your stuff } ese if(v == pictures){ // your stuff } } 

你可以重用你的监听器:

 DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { /*...*/ } }); phone.setOnClickListener(listener); bookings.setOnClickListener(listener); /*...*/ 

你可以使用/让你的听众这样: –

 img1.setOnClickListener(imgClk); img2.setOnClickListener(imgClk); img3.setOnClickListener(imgClk); img4.setOnClickListener(imgClk); 

然后你必须在onCreate()的onCreate / out方后创buildOnClickListener

  public OnClickListener imgClk = new OnClickListener() { @Override public void onClick(View v) { switch(v.getId()){ case R.id.img1: //write your code here break; case R.id.img2: //write your code here break; case R.id.img3: //write your code here break; case R.id.img4: //write your code here break; } }; 

我希望它可以帮助你。

为了使任何观点听取我们的行动,你必须把听众附加到这个观点。 所以你需要附加四个听众。 连接OnclickListener和编写实现都是两回事

我会build议使用android:onClick获取更多可读代码。

例如:

 <Button android:id="@+id/buttonId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="buttonText" android:onClick="onClick"/> 

然后在你的activity类中添加onClick方法。

 public void onClick(View v) { switch(v.getId()){ case R.id.myButton: //Your logic goes here... break; default: break; } }