Search code examples
androidandroid-studioandroid-imageviewandroid-viewandroid-inflate

Why does getTag return always 0 for my imageview clicklistener?


So far I have implemented a button that on every click inflates a new imageView now I'm trying to assign a tag to each imageView but in my case is returning always 0. This is my code:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    }

public void addImage(View view){

    for (int i = 0; i < 1; i++) {


        final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylinear);
        ImageView imageView = new ImageView(MainActivity.this);
        imageView.setLayoutParams(new LinearLayout.LayoutParams(140, 84));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        Bitmap icon = BitmapFactory.decodeResource(MainActivity.this.getResources(),
                R.drawable.text);
        imageView.setImageBitmap(icon);

        imageView.setTag(i);


        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                ImageView iv = (ImageView)v;
                Toast.makeText(getBaseContext(), v.getTag().toString(), Toast.LENGTH_SHORT).show();

            }
        });
        linearLayout.addView(imageView);

    }

}
}

Solution

  • I finally realized that the loop wasn't needed, instead I used:

    int num = linearLayout.getChildCount();
                imageView.setTag(num++);