使用简单适配器编辑 ListView 中的项目

Edit an item in a ListView using Simple Adapter

我有一个使用 SimpleAdapter 填充的 ListView:

List<Map<String, String>> listItems = new ArrayList<>();
listItems.add(createItemMap(R.string.rename_mobtag, R.string.rename_mobtag_help));
listItems.add(createItemMap(R.string.change_icon, R.string.change_icon_help));
listItems.add(createItemMap(R.string.become_invisible, R.string.become_invisible_help));

ListView mobtagSettings = (ListView) findViewById(R.id.mobtag_settings);
    final String[] fromMapKey = new String[]{TITLE_KEY, HELP_KEY};
    final int[] toLayoutId = new int[]{android.R.id.text1, android.R.id.text2};
    SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, android.R.layout.simple_list_item_2, fromMapKey, toLayoutId);
    mobtagSettings.setAdapter(simpleAdapter);

我需要更新特定项目的 TextView 以响应外部事件(因此我不能为此使用 Click 侦听器)。我怎样才能获得 TextView 以便更改它们的文本?

只需创建一个包含更改的新列表并在适配器中更新该列表并调用 notifyDatasetChanged 方法

对于那个特定的 TextView 项目,您知道列表中该项目的 position/index 吗?您可能想要创建自己的自定义适配器,它将包含对适配器列表中特定项目的更新功能,以便您可以更新该项目的 Textview。

你可以参考http://www.vogella.com/tutorials/AndroidListView/article.html#adapterown_custom,作者那里有很多关于列表视图的东西,比如自定义适配器等等,希望对你有帮助。

干杯