android中有个自定义的类ViewHolder,在这个类里面申明的LinearLayout lin; 120
然后用ViewHolder的对象去调用申明的lin=view.findViewById(R.id....).就是这个获取id这个地方,为什么获取不到XML布局中子布局的i...
然后用ViewHolder的对象去调用申明的 lin = view.findViewById(R.id....).就是这个获取id这个地方,为什么获取不到XML布局中子布局的id呢?我看书上就可以获取到,我把部分代码贴上来,谁能告诉我问题在哪。然后我需要获取的是XML布局文件activity_list 下面的子布局left_layout和right_layout的id,但是我不知道为什么获取不到,不仅这两个子布局id获取不到,貌似连activity_list都获取不到,因为我用快捷键时发现view.findViewById(R.id.)这个里面并没有我写的布局,是重写的getView方法哪里写错了吗?因为书上没有ViewHolder的具体代码,我就百度了一下这个类,发现就是在类里申明了需要用到的类型对象,所以我就照做,但是却获取不到id,只能获取到一个list,我点进去看源码,发现是系统的文件,我等渣渣表示很无奈。。。有人知道的能帮我把问题指出来吗,还有,那个ViewHolder我百度上看到说是什么用来复用View而写的类,这个类是什么?很复杂吗,有没有具体的代码。。。我在把XML布局文件发出来。求大哥帮我看看,万分感激。
展开
1个回答
展开全部
public class TestAdapter extends BaseAdapter {
private List<String> list;
private Context context;
public TestAdapter (Context context, List<String> list) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(this.context).inflate(R.layout.activity_list, null);
holder.tv_taskCode = (TextView) convertView.findViewById(R.id.left_layout);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tv_taskCode.setText(list .get(position));
return convertView;
}
public final class ViewHolder {
public TextView left_layout;
}
}
给个例子,只不过把LinearLayout换成了TextView
追问
为什么我写的那个,获取不到子布局的id呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询