getTag()有问题

时间:2013-06-08 14:52:31

标签: android

我在带有动态ImageViews的ScrollView中使用()setTag和getTag()来了解哪个被点击了。这是我的代码:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

private View cell;
private LinearLayout layoutScroll;


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

    layoutScroll = (LinearLayout) findViewById(R.id.linear_scroll_main_activity);

    for (int i = 0; i <= 3 ; i ++){
        cell = getLayoutInflater().inflate(R.layout.category_cells, null);
        final ImageView imageView = (ImageView) cell.findViewById(R.id.image_category_cells);
        final TextView textView = (TextView) cell.findViewById(R.id.text_category_cells);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (v.getTag().toString() == "0"){
                    Toast.makeText(MainActivity.this,"Text1", Toast.LENGTH_LONG).show();
                }else if (imageView.getTag().toString() == "1"){
                    Toast.makeText(MainActivity.this,"Text2", Toast.LENGTH_LONG).show();
                } else{
                    Toast.makeText(MainActivity.this,v.getTag().toString(), Toast.LENGTH_LONG).show();
                }

            }
        });
        imageView.setTag(i);
        int imageResource = getResources().getIdentifier("drawable/category1", null, getPackageName());
        imageView.setImageResource(imageResource);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        textView.setText("Texto " + Integer.toString(i + 1));
        layoutScroll.addView(cell);
    }
}

好的,问题是我总是会得到0,1,2或3的T​​oast,具体取决于我点击的ImageView。我的问题是,如果我得到一个说0或1的Toast它不应该给我一个说Text1或Text2的Toast?
我将不胜感激任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)