ListView / SimpleAdapter 不刷新 - Android
ListView / SimpleAdapter doesn't refresh - Android
我想通过单击按钮添加到 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();
我想通过单击按钮添加到 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();