2016-03-28 9 views
0

私のアプリでは以下のコードを使用しています。 View.getTagは、getViewメソッドの外部でnull値を返します。view.getTag(key)はアンドロイドにnullを返します

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    if (convertView == null) 
    { 
     mHolder = new GridViewHolder(); 
     convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_view_item, parent, false); 
     mHolder.overflowButton.setOnClickListener(overflowClickListener); 
     mHolder.titleText = (TextView) convertView.findViewById(R.id.gridViewTitleText); 
     convertView.setTag(mHolder); 
    } 
    else 
    { 
     mHolder = (GridViewHolder) convertView.getTag(); 
    } 
    titleText = "tagsvalues"; 
    convertView.setTag("titleText", titleText); 
    mHolder.titleText.setText(titleText); 
    return convertView; 
} 

/** 
* Click listener for overflow button. 
*/ 
private OnClickListener overflowClickListener = new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     if(v.getTag("titleText") == null) 
      Log.e("mName", "Null value returns by above getTag"); 
    } 
}; 

この問題を解決するために私をチェックしてください。前もって感謝します。

+0

私は少しあなたのための書式を改善しました。とにかく最後のセミコロン( ';')は本当にそこにいる必要がありますか?それは結果を変更しないが、少なくともそれが間違っていると思う。 – cramopy

答えて

0

クリックリスナーをmHolder.overflowButtonに設定しています。このオーバーフローボタンにはタグはありません。タグをconvertView.setTag("titleText", titleText);に設定し、overflowButtonに設定していないことに注意してください。

修正:mHolder.overflowButton.setTag("titleText", titleText);

+0

ありがとうございました。これは他の人にとっては単純な問題かもしれませんが、私にとってはタグの重要性を正しく認識していないので、大きなものです。もう一度ありがとう。 –

+0

確かに、問題はありません:) –

関連する問題