2016-03-28 82 views
0

我在我的應用程序中使用了下面的代碼。 View.getTag在getView方法的外部返回null值。view.getTag(key)在android中返回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上的點擊監聽器。這overflowButton沒有任何標籤。請注意,您在convertView.setTag("titleText", titleText);上設置標籤,而不是overflowButton

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

+0

非常感謝。這對其他人來說可能是一個簡單的問題,但對我來說這是一個很大的問題:)因爲我沒有正確地意識到標籤的重要性。再次感謝。 –

+0

當然,沒問題:) –