gingray
gingray

Reputation: 401

onClickListener on TableLayout

I faced with trivial problem but i don't know how to solve it. I have several ImageViews 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

Answers (2)

Houcine
Houcine

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

Maria Neumayer
Maria Neumayer

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

Related Questions