问题描述
- android 点击动态添加view组成的listView的item时,显示出问题
-
android listview中的item是动态添加的view, 点击item内的其中一个view时,显示的永远是页面上显示出来的的最后一个item的最后一个view中的值List carLists = ci.getCarLists();
for (CarModle cm : carLists) {
typeSeries = cm.getTypeSeries();
typeName = cm.getTypeName();
LinearLayout layout = new LinearLayout(mActivity);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(params);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setPadding(50, 20, 20, 20);
TextView tv_typeSeries = new TextView(mActivity);
tv_typeSeries.setText(typeSeries);
TextView tv_typeName = new TextView(mActivity);
tv_typeName.setText(typeName);
tv_typeName.setLeft(20);
layout.addView(tv_typeSeries, params);
layout.addView(tv_typeName, params);
holder.layout_carInfo.addView(layout, params);
}holder.layout_carInfo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(mActivity, typeSeries + typeName, Toast.LENGTH_SHORT).show(); } });
解决方案
已解决,谢谢各位,,,,,
解决方案二:
用setItemOnClickListener试试
解决方案四:
for (CarModle cm : carLists) {
typeSeries = cm.getTypeSeries();
typeName = cm.getTypeName();
......
holder.layout_carInfo.addView(layout, params);
}
你的for循环执行完后,typeSeries和typeName指向最后一个item的数据,在onclick事件中当然会显示最后一条数据的信息啦。
可以在for循环内部中添加layout的onclick事件,对给个item添加onclick监听不就行了嘛。