Reputation: 401
I faced with trivial problem but i don't know how to solve it. I have several ImageView
s on my TableLayout how can i create one onClickListner for all of them. It should looks like this :
public void onClick(View v) {
switch(v.getId())
{
case(R.id.imageStart):
{
this.startActivity(new Intent(MainActivity.this,GameActivity.class));
break;
}
case(R.id.imageExit):
{
finish();
break;
}
}
}
If it's possible or course, i am new in Android Dev. I saw sample where for each ImageView have his own onClickListner but its not a good practice i suppose. Thanks.
Upvotes: 0
Views: 2012
Reputation: 24181
follow this Steps :
public class MyActivity extends Activity implement OnClickListener{
@override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//get the View by Id
ImageView img1 = (ImageView) findViewById(R.id.img1);
ImageView img2 = (ImageView) findViewById(R.id.img2);
ImageView img3 = (ImageView) findViewById(R.id.img3);
//set the OnClickListener on your ImageViews
img1.setOnClickListener(this);
img2.setOnClickListener(this);
img3.setOnClickListener(this);
}
@override
public void onClick(View v){
switch(v.getId()){
case(R.id.img1):
Toast.makeText(this,"image 1 clicked ...",3000).show();
break;
case(R.id.img2):
Toast.makeText(this,"image 2 clicked ...",3000).show();
break;
case(R.id.img3):
Toast.makeText(this,"image 3 clicked ...",3000).show();
break;
}
}
}
Upvotes: 1
Reputation: 3357
Yes you can do that. Just implement the OnClickListener in your class:
public class MainActivity extends Activity implements OnClickListener {
}
Add your onClick method to that class and then all you have to do for each button is this:
button.setOnClickListener(this);
Upvotes: 1