java - ListView 和适配器过滤器未更新

标签 java android listview

我正在设置一个带有相应 ListView 的适配器。当我过滤适配器和 ListView 时,我输出它们的计数,但它仍然是相同的。但是,在应用程序上,listView 似乎已被过滤,因为它仅显示与过滤器输入匹配的项目(在本例中为“Berlin”)。

    String string_list[] = {"Paris", "London", "Milano", "Madrid", "Berlin", "Moscow", "Washington" };

    // Set up ListView and Adapter
    myAdapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,string_list);
    myListView.setAdapter(myAdapt);
    myListView.setItemsCanFocus(false);
    myListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View itemView, int position,
                long arg3) {
            // One of my methods
            manageFavorites(arg0, itemView, position, arg3, myListView);
        }
    });
    // Debug
    myAdapt.getFilter().filter("B");
    tv1.setText("myAdapt.getCount() =" + myAdapt.getCount());

    myListView.setTextFilterEnabled(true);
    myListView.setFilterText("B");
    tv2.setText("myListView.getCount() =" + myListView.getCount());

有没有一种方法可以在适配器或 ListView 上调用过滤器时,变量根据过滤器而变化?在本例中,我使用字符 B 过滤 myAdaptmyListView,因此我希望有 myAdaptmyListView 携带唯一与该字符匹配的项目,即 Berlin

请注意,我的类扩展了Activity。请指出我是否应该使用 ListActivityCustomAdapter,正如我在 SOF 中看到的那样。

最佳答案

您必须在过滤器上添加一个监听器,该监听器将在过滤完成时触发。

myAdapt.getFilter().filter("B", new Filter.FilterListener() {
    public void onFilterComplete(int count) {
        tv2.setText("myListView.getCount() =" + count);    
    }
}

参见Filter class有关详细信息,请参阅 Android 引用。

关于java - ListView 和适配器过滤器未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22744892/

相关文章:

c# - 摆脱 ListView 中的 1 像素填充/边框间隙?

Android:在ListView的onItemClickListener()中获取TextView

java - JAVA中无法转义双引号

java - 如何使用嵌入式字体通过 iText(DefaultFontMapper?)调用 Graphics2D.drawString(...)

java - 使用 Java 的 ConvolveOP 的 Sobel 滤波器对图像进行边缘检测的问题

android - react 原生 : Could not initialize class org. codehaus.groovy.reflection.ReflectionCache

android - android list 文件中main,default和launcher的用途是什么

java - 为什么我无法连接到admob?

android - 由于错误,React-Native 0.65.1 中的 React Native : RNUILib 5. 30.0 无法构建

android - 在长 ListView 中选择特定复选框会检查多个复选框