ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android ListView切换按钮

2019-10-09 07:25:46  阅读:225  来源: 互联网

标签:android android-listview listadapter simplecursoradapter


我有一个Listview将列出数据库中的警报.我需要在每个列表项旁边添加一个切换按钮以设置警报的开/关状态.

如何在列表视图中添加切换按钮?

R.layout.alarm_list:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ListView android:id="@+id/android:list"
      android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
   <TextView android:id="@+id/android:empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/no_reminders"
        android:textColor="#FFF"/>
     </LinearLayout>

Java代码:

      private void fillData() {
    Cursor remindersCursor = aDbHelper.fetchAllAlarms();
    startManagingCursor(remindersCursor);

    // Create an array to specify the fields we want to display in the list
    // (only TITLE)
    String[] from = new String[] { AlarmDbAdapter.KEY_TITLE };

    // and an array of the fields we want to bind those fields to (in this
    // case just text1)
    int[] to = new int[] { R.id.text1};

    // Now create a simple cursor adapter and set it to display
    SimpleCursorAdapter reminders = new SimpleCursorAdapter(this,
            R.layout.alarm_row, remindersCursor, from, to);

    setListAdapter(reminders);
   }

R.layout.alarm_row:

   <?xml version="1.0" encoding="utf-8"?>

   <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/text1"
    android:padding="10dip" android:layout_width="242dp"  
         android:layout_height="wrap_content"/>

我的项目被推迟了.

救命

解决方法:

没有任何摘要.解决你的问题.我认为您需要进行多重选择.现在这是您需要的东西.

由于您使用的是SimpleCursorAdapter,因此应将其替换为CursorAdapter.为此,您必须对其进行扩展,因为它是抽象适配器.完成后,您将覆盖两个功能.

> newView您将在其中通过扩大R.layout.alarm_row(它也应该包含切换按钮)来创建列表项视图的地方.您使切换按钮不可单击.
> bindView,您将在其中设置切换按钮和文本视图的文本状态

这就是您在“活动”方面需要的内容.

>您已通过xml中的android:choiceMode或使用setChoiceMode将ListView设置为多选模式.

现在bindView看起来像:

ListView lv = ((ListActivity)context).getListView();
// Containing all check states
SparseBooleanArray sba = lv.getCheckedItemPositions();


// I am using check box

cb.setChecked(false);

// Cursor is passed as an argument.
if(sba != null)
  if(sba.get(cursor.getPosition()))
     cb.setChecked(true);

参考文档:

CursorAdapter docs

http://developer.android.com/reference/android/widget/ListView.html

标签:android,android-listview,listadapter,simplecursoradapter
来源: https://codeday.me/bug/20191009/1877677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有