我有一个数组适配器,显示项目列表。我正在创建一个项目列表供用户在对话框中选择,当用户从该列表中选择项目时,当他点击对话框中的“确定”按钮时,我希望更新阵列适配器。用户单击按钮时会创建对话框。为此,我首先创建了一个列表和一个数组适配器。 现在的问题是,当我选择OK时,列表永远不会更新。它永远不会收到变更通知。 我在这里想念的是什么
ListView listView = (ListView) findViewById(android.R.id.list);
ArrayAdapter<String> adapter;
ArrayList<String> list = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
mchooseItems.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
launchAddItems();
}
});
listView.setAdapter(adapter);
protected void launchAddItems(){
AlertDialog.Builder ab=new AlertDialog.Builder(this);
ab.setTitle("Select Items")
.setMultiChoiceItems(items_new, null, new DialogInterface.OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
String checked_item = mitems.get(which);
if (isChecked){
mSelectedItems.add(checked_item);
}
else if(mSelectedItems.contains(which)){
mSelectedItems.remove(Integer.valueOf(checked_item));
}
}
}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
list.add("1");
list.add("2");
list.add("3");
adapter.notifyDataSetChanged();
}
}).setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
mSelectedItems.clear();;
}
});
ab.create();;
ab.show();
}
答案 0 :(得分:1)
尝试致电:
adapter.add("1");
adapter.add("2");
adapter.add("3");
adapter.notifyDataSetChanged();