我在我的項目中有一個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