我有可滾動的列表視圖項目。每個項目都有以下佈局。列表視圖項目滾動後更改順序
根據需要顯示或隱藏ID爲customer_menu_index
的LinearLayout。 Ramaining元素顯示在每個方法調用中。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/customer_menu_index" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/menu_listview_item_alphabet_bg" android:orientation="horizontal" android:visibility="gone"> <TextView android:id="@+id/customer_menu_index_letter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:paddingBottom="5dp" android:paddingTop="5dp" android:text="bla" android:textColor="@color/menu_listview_item_title" android:textSize="10sp" android:textStyle="bold" android:typeface="sans" /> </LinearLayout> <RelativeLayout android:id="@+id/customer_menu_item" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/menu_listview_item_selector" android:orientation="horizontal" > <TextView android:id="@+id/customer_menu_item_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="0dp" android:paddingBottom="0dp" android:paddingTop="5dp" android:textColor="@color/menu_listview_item_title" android:textSize="10sp" android:textStyle="bold" android:typeface="sans" /> <TextView android:id="@+id/customer_menu_item_subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customer_menu_item_title" android:layout_marginLeft="5dp" android:layout_marginRight="0dp" android:paddingBottom="5dp" android:paddingTop="1dp" android:textColor="@color/menu_listview_item_subtitle" android:textSize="8sp" android:textStyle="normal" android:typeface="sans" /> </RelativeLayout> </LinearLayout>
我的BaseAdapter
方法getView
使用此佈局。實現getView方法。
public View getView(int position, View convertView, ViewGroup parentView) {
View vi = convertView;
if (convertView == null)
{
vi = inflater.inflate(R.layout.customer_menu_index_item, null);
}
LinearLayout indexLayout = (LinearLayout) vi.findViewById(R.id.customer_menu_index);
HashMap<String, String> category = new HashMap<String, String>();
category = mData.get(position);
String currentIndexLetter = category.get(CustomerMenu.KEY_COMPANY).substring(0, 1);
if (currentIndexLetter.equals(mLastIndexLetter) == false)
{
TextView letter = (TextView) vi.findViewById(R.id.customer_menu_index_letter);
letter.setText(currentIndexLetter);
mLastIndexLetter = currentIndexLetter;
indexLayout.setVisibility(LinearLayout.VISIBLE);
}
TextView title = (TextView) vi.findViewById(R.id.customer_menu_item_title);
TextView subtitle = (TextView) vi.findViewById(R.id.customer_menu_item_subtitle);
title.setText(category.get(CustomerMenu.KEY_COMPANY));
subtitle.setText(category.get(CustomerMenu.KEY_CONTACT_PERSON));
return vi;
}
它加載後工作正常。但是當我滾動列表視圖時,項目的順序發生了變化。
「//用text填充數據」 - 這部分可能是相關的。 – dokkaebi
以及'if(...){' –
是什麼問題? – misco