java - ListView/SimpleAdapter 不刷新 - Android

标签 java android listview android-adapter simpleadapter

我想通过单击按钮添加到 ListView,但 ListView 没有刷新。 HashMap 本身会刷新,但 ListView 不会。

这是我的代码:

final ListView grupidView = (ListView) findViewById(R.id.grupiList);
final HashMap<String,String> uusGrupp = new HashMap<>();

Button gruppNupp = findViewById(R.id.lisaGrupp);

final List<HashMap<String, String>> grupiLiikmed = new ArrayList<>();

final SimpleAdapter adapter = new SimpleAdapter(this, grupiLiikmed, R.layout.list_items,
        new String[]{"First line", "Second line"},
        new int[]{R.id.text1, R.id.text2});

Iterator it = uusGrupp.entrySet().iterator();

while(it.hasNext()){
    HashMap<String,String > gruppResult = new HashMap<>();
    Map.Entry pair = (Map.Entry)it.next();
    gruppResult.put("First line", pair.getKey().toString());
    gruppResult.put("Second line", pair.getValue().toString());
    grupiLiikmed.add(gruppResult);
}

grupidView.setAdapter(adapter);

gruppNupp.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        EditText grupp = findViewById(R.id.grupp);
        if(!grupp.getText().toString().equals("")) {
            uusGrupp.put(grupp.getText().toString(), "Grupp");
            grupp.setText("");
            grupidView.invalidateViews();
            adapter.notifyDataSetChanged();

        }
    }
}

最佳答案

onClick 调用中,您似乎没有向支持适配器 grupiLiikmed 的列表添加任何内容。您必须调用类似这样的方法来更新适配器:

HashMap<String,String> newItem = new HashMap<>();
newItem.put("First line", "something");
newItem.put("Second line", "else");
grupiLiikmed.add(newItem);
adapter.notifyDataSetChanged();

关于java - ListView/SimpleAdapter 不刷新 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53823940/

相关文章:

android - 安卓代码分析工具

.net - 在 ListView 中显示文件夹图标

java - 如何实现用于流式传输斐波那契数的 Spliterator?

java - 处理 P3D 草图无法在 Javascript 模式下工作

java - ' ' 符号之间的子字符串

android - 使用自定义 CursorAdapter 使 ListView 行可点击

java - notifyDataSetChanged() 不调用 onBindViewHolder() 方法

java - 将 ArrayList<Object> 转换为字符串

android - 我如何在我的布局 xml 中使用默认的 android 资源?

android - gradle:根据构建类型(或变体)执行代码