2014-03-12 2 views
0

У меня есть ящик меню со списком, в котором есть пользовательский ArrayAdapter. Я хочу изменить стиль шрифта выбранного элемента списка на полужирный, но я не уверен, как это сделать.Изменение стиля шрифта для выбранного элемента списка

Из моего исследования кажется, что я должен делать это в getView пользовательского адаптера. Вот мой getView, как бы я это сделал?

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

Редактировать: Пытался изменить шрифт в getView, как показано ниже, но не работал. tv кажется всегда нулевым.

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

Thanks.

+0

Если вы хотите изменить стиль шрифта для выбранного элемента, то это должно быть сделано в itemClickListener и не в GetView. – Mobility

+0

Привет, Я пробовал реализовать onListItemClick(), но изменения не отражаются во время выполнения. – user1118764

+0

Можете ли вы разместить свой код элементаCLickListener, пожалуйста. – 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

Смежные вопросы