当前位置: 首页 > 知识库问答 >
问题:

在Android中重新填充列表视图

许彦
2023-03-14

如何在Android中重新填充ListView

    listview = (ListView) findViewById(R.id.listView1);
    listview.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, Names));

    final String[] TempArray = new String[Names.length];

    editText = (EditText) findViewById(R.id.editText1);
    editText.addTextChangedListener(new TextWatcher()
    {

        public void onTextChanged(CharSequence s, int start, int before,
                int count)
        {
            // TODO Auto-generated method 
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                int after)
        {
            // TODO Auto-generated method stub
        }

        public void afterTextChanged(Editable s)
        {
            // TODO Auto-generated method stub

        }
    });

那是我的样本代码。我想重新填充的listview上的公共无效onTextChanged(CharSequence s, int start, int int count)function.ononTextChanged函数,我想填补listview与一个新的字符串数组。

共有3个答案

牟慎之
2023-03-14

您不能在任何TextWatcher方法调用中调用notifyDataSetChanged(),该调用将引发RecyclerView notifyDatasetChange()非法状态异常

我所做的是实现自动添加新行内RecycraView列表是通过实现OnFocus usChangeListener界面,这将自动添加一次editText获得用户关注,也能够避免上述错误。

editText.setOnFocusChangeListener(new View.OnFocusChangeListener {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus)
                // ADD NEW ITEM INTO LIST
                notifyDataSetChanged();
        }
    })
杜联
2023-03-14

首先,您需要将适配器插入变量:

ArrayAdapter mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Names);
listview.setAdapter(mAdapter);

然后,当您需要重新填写您的列表时(例如,当名称更改时),只需拨打电话

mAdapter.notifyDataSetChanged();
魏元白
2023-03-14

看起来您正在用“Names”值填充适配器,您可以做的是ContextChanged从“Names”中清除旧数据,添加新数据并设置适配器。

 类似资料:
  • 我在tableview中使用的一列有问题<本栏最初用于显示我拥有的一种数据类型: 我想更改此列中显示的数据,因此我更改了FXML文件中的列名,并编写了以下内容: 我的ResearchData类编码如下: (我只保留了rang、luse和lSysteme,但我有很多其他变量都是这样写的)。 当我启动程序时,在tableview中,除Systeme列外,所有列都正确显示,我收到了以下错误消息: 我可以

  • 在SpringMVC项目的控制器中,我确实有一个列表,我将其放在模型映射中,如下所示。 现在我想在thymeleaf视图中使用post方法动态填充它。为此,我使用了一个JavaScript脚本。这不是所有的html代码,但为了简单起见,我只添加了JS部分。 这是测试有效的后方法。 它向我显示了错误:错误解析模板[],模板可能不存在或任何已配置的模板解析程序都无法访问,这肯定是因为:。有没有办法动态

  • 问题内容: 我有一个数据库SQLite,然后使用SimpleCursorAdapter,将值显示到列表视图中。但是,我想重新排列列表视图项,并在顶部显示ID#1,然后显示ID号2,依此类推。问题是,我无法掌握根据以下内容重新分配列表视图项的概念在内容提供商提供的某些ID号上。如果您知道,请分享。谢谢。 问题答案: 如果正确使用SQLite,则在查询数据库时应该能够执行“按ID排序”。 如果不是这种

  • 我知道我的问题已经被问了很多,但是我花了相当多的时间搜索了SO和谷歌,试图更好地理解这个概念,但没有成功。我见过许多不同的实现,这也让我得到了一些关于我的具体情况的建议。 我的目标 我需要对php文件执行post请求,目标是最终用一些json数据填充列表活动中的字段。 HTTP POST响应 这是我从服务器返回的响应数据的格式,它似乎是数组的JSON对象(?)。 第一个问题 下面的代码是我用来阅读

  • 我正在使用Struts 2框架,我想将对象列表从Java传输到JSP,然后再传输回Java。转移到JSP工作正常与

  • 并希望按列表中的值更改行C1-C3。预期产出: