单击对话框中的按钮后,可以通知arrayadapter

时间:2013-10-08 19:21:29

标签: android android-arrayadapter

我有一个数组适配器,显示项目列表。我正在创建一个项目列表供用户在对话框中选择,当用户从该列表中选择项目时,当他点击对话框中的“确定”按钮时,我希望更新阵列适配器。用户单击按钮时会创建对话框。为此,我首先创建了一个列表和一个数组适配器。 现在的问题是,当我选择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();    
 }  

1 个答案:

答案 0 :(得分:1)

尝试致电:

adapter.add("1");
adapter.add("2");
adapter.add("3");
adapter.notifyDataSetChanged();