我有一個關於listview的問題。每個listview項都有一個imageview和一個textview。我爲Listview適配器擴展了BaseAdapter類,並且重寫了一些我必須覆蓋的方法。順便說一下,如果大於25,我想在textview中縮小文本的大小。爲此,我創建了一個名爲「shrinkText()」的方法。當我第一次執行應用程序時,此方法正常工作。因此,文本大小超過25的文本視圖已縮小,其他文本視圖保持其大小。但是,當我查看列表視圖時,文本查看文本大小小於25的文本也被縮小了。我應該怎麼做才能解決這個問題?由於該方法在listview中應用了錯誤的元素
我的ListView適配器...
public class ListAdapter extends BaseAdapter{
private final ProgramInfo values;
private LayoutInflater mInflater;
public ListAdapter(Context context, ProgramInfo values) {
this.values = values;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount(){
return values.getSize();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.brd_stream_list_item,parent,false);
viewHolder = new ViewHolder();
viewHolder.p_Name = (TextView)convertView.findViewById(R.id.prgName);
viewHolder.p_Image = (ImageView)convertView.findViewById(R.id.prgImage);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.p_Name.setText(values.programNames.get(position));
viewHolder.p_Image.setImageResource(R.drawable.alarm_clock_ed);
CharSequence text = viewHolder.p_Name.getText();
shrinkText(text,viewHolder.p_Name); //Call for shrink
}
我shrinkText()方法..
private void shrinkText(CharSequence text, TextView v){
if(text.length()>25){
v.setTextSize(TypedValue.COMPLEX_UNIT_SP, 11);
}
}
重命名'shrinkText'爲'toShrinkOrNotToShrinkText' :) ....當然加上'else' stament來反映它的新名字... – Selvin 2014-11-06 16:27:00
@Selvin我在評論中的回答:) – 2014-11-06 16:30:36