【发布时间】:2018-06-18 12:59:14
【问题描述】:
我的列表视图有一个包含 3 个元素的行文件。行左侧的名称。一个 Imageview(指示转到下一页的右箭头)和一个主要的 LinearLayout,我在其中放置了这些项目。
这是我的适配器的 getView() 方法..
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=LayoutInflater.from(context).inflate(R.layout.activity_row_mail_category,null);
holder=new Holder();
setView(convertView,position);
convertView.setTag(holder);
}
else {
holder= (Holder) convertView.getTag();
setView(convertView,position);
}
holder.Name.setText(mailCategoryArrayList.get(position).getCat_name());
return convertView;
}
Holder 是我在 adpater 本身中创建的静态类。
static class Holder{
TextView Name;
ImageView next;
LinearLayout mainLayout;
}
这是我从 getView 调用的 setView 方法
private void setView(final View convertView,final int position) {
holder.Name = (TextView) convertView.findViewById(R.id.listview_row_title);
holder.next = (ImageView) convertView.findViewById(R.id.next);
holder.main = (LinearLayout) convertView.findViewById(R.id.main);
holder.next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
Log.e("tag","Position:"+position);
}
});
holder.mailCategoryMain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.next.performClick();
});
每当我运行应用程序并单击布局时,我都会将位置作为 arrayList 的最后一个索引,但是当我单击 imageview 时,我会得到正确的位置。那么 performClick() 函数有什么问题,当我只是告诉 android 以编程方式而不是手动单击图像视图时,为什么会发生这种情况?
【问题讨论】:
标签: android listview arraylist android-adapter