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>

    这里是效果图


  • 相关阅读:
    Object.defineProperty 监听对象属性变化
    Object.create(null) 和 {} 区别
    Vue 源码 基础知识点
    js setTimeout和setInterval区别
    Fiddler抓包工具使用方法
    使用 Jmeter 做 Web 接口测试
    Python 操作 SQL 数据库 (ORCAL)
    python连接MySQL数据库问题
    抓包工具Charles基本用法
    Python数据分析之pandas学习
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3190096.html
Copyright © 2011-2022 走看看