zoukankan      html  css  js  c++  java
  • 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>

    这里是效果图


  • 相关阅读:
    C#中Dictionary的用法
    System.Timers.Timer用法
    C#中的异步调用及异步设计模式(三)——基于事件的异步模式
    C#中的异步调用及异步设计模式(二)——基于 IAsyncResult 的异步设计模式
    C#中的异步调用及异步设计模式(一)
    [你必须知道的异步编程]——异步编程模型(APM)
    strncasecmp与strcasecmp用法
    C语言之strrchr函数
    HDU 5289 Assignment (ST算法区间最值+二分)
    poj 1733 Parity game(种类并查集)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3190096.html
Copyright © 2011-2022 走看看