How to specify the view in the layout?

I created ImageView

ImageView _view; ViewGroup _root; public void CreateImageView() { _root = (ViewGroup) findViewById(R.id.root); for (int i = 0; i < 5; i++) { _view = new ImageView(this); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100); layoutParams.leftMargin = 150; layoutParams.topMargin = 50; _view.setLayoutParams(layoutParams); _view.setId(i); _root.addView(_view); } } 

when I click on an image that has id = 3, I should call Toast. How can I achieve this?

+4
source share
3 answers

Take an Integer array with an image, for example _view = new ImageView[size]; and inside forloop , initialize and set the tag in imageview, and then when processing the click event, get a tag of type int k = (Integer) v.getTag(); so as to get an exact click of your view.

 ImageView _view; ViewGroup _root; public void CreateImageView() { _root = (ViewGroup)findViewById(R.id.root); _view = new ImageView[5]; for ( int i = 0; i< 5;i++) { _view[i] = new RadioButton(this); _view[i].setTag(i); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100); layoutParams.leftMargin = 150; layoutParams.topMargin = 50; _view.setLayoutParams(layoutParams); _root.addView(_view[i]); } } 

Click Event #

  _view[j].setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub. int k = (Integer) v.getTag(); if(k==3){ Toast.makeText(this, "Your Message", Toast.LENGTH_LONG).show(); } } } 
+5
source

when I click on imageview id = 3, Toast.maketext is called. How can i do this?

Add something like this to your loop:

 if(i == 3) { _view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getBaseContext(), "Message", Toast.LENGTH_LONG).show(); } }); } 
+3
source

Not sure what you are trying to achieve. But you can try the following snippet.

 ImageView imgView = (ImageView) _root.findViewById(3); imgView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Hello World from image 3", Toast.LENGTH_SHORT).show(); } }); 
+1
source

All Articles