Android的Master/Detail風格界面中實現自定義ListView的單選

原文在這裏:http://duduli.iteye.com/blog/1453576

可以實現多選,那麼如何實現單選呢,這裏我寫了一個非常簡單的方法:

    public void onListItemClick(ListView listView, View view, int position, long id) {
        super.onListItemClick(listView, view, position, id);
        CheckedTextView ct;
        CheckedTextView multiple;
        int count = listView.getChildCount();
        for (int i = 0 ; i < count ; i ++ ) {
            ct = (CheckedTextView)listView.getChildAt(i).findViewById(R.id.checkText);
            ct.setChecked(false);
        }
        multiple = (CheckedTextView)view.findViewById(R.id.checkText);
        multiple.toggle();
    }
當然,你需要在你自定義的Adapter的getView()裏面
holder.checkedTextView = (CheckedTextView)convertView.findViewById((R.id.checkText));
這裏是我定義的ListView中每個View的xml佈局
<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView
            android:layout_width="wrap_content"
            android:padding="0dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:background="@drawable/navigation_category_icon"
            android:id="@+id/imageView"
            android:layout_gravity="center_horizontal|top"/>

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:text="Large Text"
            android:id="@+id/textView"
            android:layout_gravity="center_horizontal|top"
            android:layout_toRightOf="@+id/imageView"
            android:layout_marginBottom="11dp"/>
    <CheckedTextView
            android:id="@+id/checkText"
            android:layout_width="fill_parent"
            android:layout_height="?android:attr/listPreferredItemHeight"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:gravity="center_vertical"
            android:checkMark="?android:attr/listChoiceIndicatorMultiple"
            android:paddingLeft="6dip"
            android:paddingRight="6dip"
            />
</RelativeLayout>

這裏是效果圖


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章