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

Android 为什么gettag()的值在textview的onclicklistener上为空?,android,textview,nullpointerexception,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].setTe

在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+">>>>>>>>>>>>>");
试一试

试一试


您需要像这样访问标记

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());
        }
        }
    });

您需要像这样访问标记

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());
        }
        }
    });
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());
        }
        }
    });