相关疑难解决方法(0)

如何在Android上动态更新ListView

在Android上,我如何ListView根据用户输入进行过滤,其中显示的项目是根据TextView值动态更新的?

我正在寻找这样的东西:

-------------------------
| Text View             |
-------------------------
| List item             |
| List item             |
| List item             |
| List item             |
|                       |
|                       |
|                       |
|                       |
-------------------------
Run Code Online (Sandbox Code Playgroud)

android listview filter android-widget

159
推荐指数
2
解决办法
9万
查看次数

Filter rows from Cursor so they don't show up in ListView

我有一个Cursor,它返回我使用SimpleCursorAdapter的行来填充ListView.我想过滤一些行,这样它们就不会显示在我的ListView中.我使用Activity中其他行的数据,因此我不想更改我的SQL以使用WHERE子句过滤它们.

保持一行不在ListView中显示的最佳方法是什么?理想情况下,我会检查我的行中的列,然后只向ListView添加满足条件的行.

android

11
推荐指数
2
解决办法
8272
查看次数

使用Cursor Adapter实现带有过滤器的多个select的列表视图

Android问题中讨论了这个问题:过滤listview时检查了错误的项目.总结该问题,当使用带有CursorAdapter和过滤器的列表视图时,在过滤后的列表中选择的项目将在删除过滤器后丢失其选择,而是选择未过滤列表中该位置的项目.

使用上面链接问题中的代码示例,我们应该在哪里放置代码来标记复选框.我相信它应该在CustomCursorAdapter的getView()方法中,但我不确定.另外,我们如何访问包含自定义适配器类中所有selectedIds的HashSet,因为它将在保存列表的主活动中初始化和修改.

我实现ListView的活动

@Override
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.selectfriends);

      Log.v(TAG, "onCreate called") ;

      selectedIds = new ArrayList<String>() ;
      selectedLines = new ArrayList<Integer>()  ;

      mDbHelper = new FriendsDbAdapter(this);
      mDbHelper.open() ;

      Log.v(TAG, "database opened") ;

      Cursor c = mDbHelper.fetchAllFriends();
      startManagingCursor(c);

      Log.v(TAG, "fetchAllFriends Over") ;


      String[] from = new String[] {mDbHelper.KEY_NAME};
      int[] to = new int[] { R.id.text1 };

      final ListView listView = getListView();
      Log.d(TAG, "Got listView");

   // Now initialize the  adapter and set it to display using …
Run Code Online (Sandbox Code Playgroud)

android android-listview simplecursoradapter

8
推荐指数
1
解决办法
4202
查看次数

如何从 onItemClicklistener 上的联系人 ListView 获取电话号码

我已经创建了一个有效的联系人列表,但是当我单击任何联系人时,我只能从 ListView 获得 Android 屏幕上第 1 个项目的联系人编号。

我想获得该职位点击联系人的电话号码。我在网上到处搜索,但没有得到任何解决方案,我试图解决这个问题过去 13 天,但我仍然无法解决这个问题,如果有人能解决这个问题,请回答。感谢兄弟/姐妹的帮助!


li.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

TextView txtNummber = li.findViewById(android.R.id.text2)
}
});
Run Code Online (Sandbox Code Playgroud)

java android android-contacts

6
推荐指数
1
解决办法
166
查看次数

使用 CursorLoader 和 FilterQueryProvider 过滤 ListView?

在我们的项目中,我们经常处理列表,并在过去使用它并使用以下“模式”:

ListView 位于 Fragment 中,在 onActivityCreated 中初始化,我们首先启动 CursorLoaders,然后在 onFinish 中将 Cusor 交换到 ListAdapter。然后,我们使用 filterQueryProvider 实现了搜索功能,该功能仅通过 contentResolver.query(...) 返回游标。如果我在选择列表中的某些内容时进行了一些方向更改,则在许多情况下(不定期)会出现以下错误:

android.database.StaleDataException: Attempted to access a cursor after it has been closed.
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3378)
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread.access$700(ActivityThread.java:127)
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1162)
12-05 10:36:59.531: E/ACRA(12079):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 10:36:59.531: E/ACRA(12079):  at android.os.Looper.loop(Looper.java:137)
12-05 10:36:59.531: E/ACRA(12079):  at android.app.ActivityThread.main(ActivityThread.java:4448)
12-05 10:36:59.531: E/ACRA(12079):  at java.lang.reflect.Method.invokeNative(Native Method)
12-05 10:36:59.531: E/ACRA(12079):  at java.lang.reflect.Method.invoke(Method.java:511)
12-05 …
Run Code Online (Sandbox Code Playgroud)

android listview list filter android-cursorloader

4
推荐指数
1
解决办法
3468
查看次数