I have 4 images. We should be able to click on these images.
I'd like to know if I have to create 4 OnClickListener
, or there is another way to do this properly?
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
}
}
I would suggest using android:onClick for more readable code.
Example :
<Button
android:id="@+id/buttonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="buttonText"
android:onClick="onClick"/>
Then in your activity class add the onClick method.
public void onClick(View v) {
switch(v.getId()){
case R.id.myButton:
//Your logic goes here...
break;
default:
break;
}
}
You can just do it like this,
phone.setOnClickListener(this);
bookings.setOnClickListener(this);
settings.setOnClickListener(this);
pictures.setOnClickListener(this);
And in the onClick() method,
@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
}
}
You can reuse your listener:
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
/*...*/
}
});
phone.setOnClickListener(listener);
bookings.setOnClickListener(listener);
/*...*/
You can use/make your listener this way:-
img1.setOnClickListener(imgClk);
img2.setOnClickListener(imgClk);
img3.setOnClickListener(imgClk);
img4.setOnClickListener(imgClk);
And then you have to create OnClickListener after onCreate/out side of onCreate()
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;
}
};
I hope it helps you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With