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>

    这里是效果图


  • 相关阅读:
    二元函数求一定区间上的最大值问题
    LOF异常检测算法实现
    失效项目总代码汇总
    layui弹出层layer.open 中的content问题
    分治算法基本原理和实践
    Android 文件存储浅析
    详解 CmProcess 跨进程通信的实现
    View Animation 运行原理解析
    margin-top失效及解决办法
    vue自定义移动端touch事件之点击、滑动、长按事件
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3190096.html
Copyright © 2011-2022 走看看