我在我的项目中有一个ListView。它有很多元素,并且它使用自定义适配器,因为它从轨道服务器动态填充。ListView OnLongClick奇怪的行为
我想在项目长压时更改ListItem的内容。为了实现这个目标,我在ListItem中有两个布局,一个可见,一个隐藏。
问题是,当我长按项目时,布局会发生变化(如预期的那样),但其他ListItems也会受到影响,并以相同的方式进行更改。这似乎每5个项目发生一次,我不知道为什么。
这是我使用的LongClickListener,它位于德GetView方法中的自定义适配器上:
View v = convertView;
if (v == null){
LayoutInflater vi =
(LayoutInflater)getActivity().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_item, null);
}
final LinearLayout placeInfo =
(LinearLayout) v.findViewById(R.id.list_item_info);
final RelativeLayout placeBrief =
(RelativeLayout)v.findViewById(R.id.list_item_brief);
v.setOnLongClickListener(new OnLongClickListener(){
@Override public boolean onLongClick(View v) {
placeInfo.setVisibility(View.GONE);
placeBrief.setVisibility(View.VISIBLE);
return false;
}});
我希望得到任何帮助,非常感谢提前。
你打算长时间点击整个列表视图还是单个项目,如果是这样,你应该使用'setOnItemLongClick()'来代替。 – draksia 2013-02-11 21:00:03
我试过了,但是我无法让它工作。不过,我这样做的方式改变了布局。它的副作用(布局更改影响多于1个ListItem),我无法解决。 – Sebiwi 2013-02-11 21:03:44
所以我想你试图做的是当你的列表视图中的一个项目被长时间点击,你不想再显示该列表中的项目? 如果是这种情况,我可以尽快写点东西。 – draksia 2013-02-11 22:19:39