2014-03-12 71 views
0

我有一個菜單抽屜,其中包含具有自定義ArrayAdapter的列表。我希望將所選列表項的字體樣式更改爲粗體,但我不確定如何。更改所選列表項目的字體樣式

從我的研究看來,我應該在自定義適配器的getView中做到這一點。這是我的getView,我該怎麼做?

public View getView(int position, View convertView, ViewGroup parent) { 
    return getItem(position).getView(mInflater, convertView); 
} 

編輯:試圖改變getView中的字體如下,但沒有奏效。電視似乎總是空的。

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView tv; 
    View myView 
    myView = getItem(position).getView(mInflater, convertView); 
    tv = (TextView) myView.findViewById(R.id.list_content1); 
    if (tv != null) 
    tv.setTypeface(null, Typeface.BOLD_ITALIC); 
    return myView; 
} 

謝謝。

+0

如果要更改所選項目的字體樣式,那麼就應該在itemClickListener在getView完成,而不是。 – Mobility

+0

嗨,我試過實現一個onListItemClick(),但這些更改似乎並沒有在運行時反映出來。 – user1118764

+0

請你可以發佈你的itemCLickListener代碼。 – Mobility

回答

0

試試這個:

public View getView(int position, View convertView, ViewGroup parent) { 
ViewHolder holder; 
TextView tv; 

    if (convertView == null) 
     convertView = View.inflate(context, android.R.layout.YOURLAYOUT) 
     TextView tv = (TextView) convertView.findViewById(R.id.YOURTEXTVIEW); 
     holder.tv = tv; 
     convertView.setTag(holder); 
    else{ 
     holder = (ViewHolder) convertView.getTag(); 
     tv = holder.tv; 
    } 

    //now - find your textview based on your conditions. Just an example. 
    tv.setText(getItem(position)); 
    if (tv.getText().equals("changeme"){ 
     tv.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc. 

    return convertView; 
} 
+0

嗨,我已經修改了我的原始帖子,我在getView中嘗試了一些東西,但它不起作用。 – user1118764