我的列表视图包含带文字的文字视图。我在点击时实现了一个。增加listview的所有textviews字体。但是当我运行我的样本时,只更改了一行或两行字体,另一种字体保持默认状态。我的问题是如何在按钮点击时一次增加所有字体。
我的listadapter如下:
public class CommetaireAdapter extends BaseAdapter {
private SampleListFragment activity;
private ArrayList<Commentaire> data;
private static LayoutInflater inflater = null;
public static int selected_position_from_chapter=0;
public ImageLoader imageLoader;
ViewHolder holder;
static String src;
public CommetaireAdapter(SampleListFragment context, ArrayList<Commentaire> d) {
activity = context;
data = d;
inflater = (LayoutInflater) ((activity.getActivity()))
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getActivity());
}
public int getCount() {
return data.toArray().length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView txTime;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
//row
if (convertView == null) {
if (position % 2 == 0) {
vi = inflater.inflate(R.layout.comment_row, null);
}else {
vi = inflater.inflate(R.layout.comment_row_odd, null);
}
holder = new ViewHolder();
holder.txTime = (TextView) vi.findViewById(R.id.txTime);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
holder.txTime.setText(data.get(position).getDate());
return vi;
}
在我的listview类中按下缩小按钮,如下所示:
btZoomOut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CommetaireAdapter.ViewHolder.txTime.setTextSize(TypedValue.COMPLEX_UNIT_SP,10);
efficientadapter.notifyDataSetChanged();
}
});
答案 0 :(得分:1)
我也遇到过这种类型的要求,但区别在于它是Tab。 我通过使用下面的代码解决了它。希望这能帮助您了解您的需求。
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++){
TextView textTab=(TextView)tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
textTab.setTextSize(TypedValue.COMPLEX_UNIT_DIP,10f);
}
这不是我提供的查询的确切解决方案,但您的问题与我所面临的问题类似。 所以希望,这将有助于您为您的查询获得这种想法。 :)
最好的运气!!!!
**** 解决方案(已编辑) * * * ** 强>
for(int i=0;i<yourListviewID.getChildCount();i++){
TextView textTab=(TextView)yourListviewID.getChildAt(i).findViewById(android.R.id.title);
// if your control is not textview, use your corretct one
textTab.setTextSize(TypedValue.COMPLEX_UNIT_DIP,10f);
}
让我知道是否还有问题。 :)