为什么gettag()的值在textview的onclicklistener上变为空?

时间:2011-04-21 13:04:20

标签: android textview nullpointerexception

外面的onclick监听器我得到标签值但是在onclick监听器内我得到空值

 TableRow[] tr= new TableRow[1];    
    final TextView[] txt= new TextView[1];
    tr[0] = (TableRow) new TableRow(this);
    txt[0]=new TextView(this);
    txt[0].setWidth(intcolumnwidth1);
    txt[0].setText("txt7");
    txt[0].setBackgroundResource(R.layout.shape2);
    txt[0].setTextColor(intwhite);
    txt[0].setTag("tagging some data");
    Log.i("Tag detail", (String) txt[0].getTag());

获取此值04-21 18:13:03.813:INFO / Tag detai(514):标记一些数据

   txt[0].setClickable(true);
    txt[0].setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            try
        {
            String str=(String) txt[t].getTag();
            Log.i("magic","<<<<<<<<<<<"+str+">>>>>>>>>>>>>");

获取此值04-21 18:13:06.072:INFO / magic(514):&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt; &GT;&GT;&GT;&GT;&GT;&GT;&GT;&GT;

}
            catch(Exception exe)
            {
                Toast(exe.getMessage());
                Log.i("error", exe.getMessage());
            }
            }
        });
        tr[0].addView(txt[t]);

2 个答案:

答案 0 :(得分:4)

尝试

String str=(String) v.getTag();

答案 1 :(得分:0)

你需要像这样访问标签

txt[0].setOnClickListener(new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        try
    {
    String tag=(String) v.getTag(); 
}
        catch(Exception exe)
        {
            Toast(exe.getMessage());
            Log.i("error", exe.getMessage());
        }
        }
    });