Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从对话框类的ListView中删除项目?_Android_Listview_Android Alertdialog - Fatal编程技术网

Android 如何从对话框类的ListView中删除项目?

Android 如何从对话框类的ListView中删除项目?,android,listview,android-alertdialog,Android,Listview,Android Alertdialog,我制作了自己的对话框类。此类有一个按钮,用于从listview(即主acctivity_main.xml)中删除项目。当我按下删除按钮时,项目不会被删除 我看过这个话题。用户似乎不知道如何正确获取项目索引,我相信我做得是正确的 这个很接近。但在我的代码中,我创建了自己的对话框,这个对话框使用了一个正负按钮。我正在对话类和mainActivity之间传递变量 我的onClickListener在OnCreate中使用main活动 mFoodDataAdapter = new FoodDataAd

我制作了自己的对话框类。此类有一个按钮,用于从listview(即主acctivity_main.xml)中删除项目。当我按下删除按钮时,项目不会被删除

我看过这个话题。用户似乎不知道如何正确获取项目索引,我相信我做得是正确的

这个很接近。但在我的代码中,我创建了自己的对话框,这个对话框使用了一个正负按钮。我正在对话类和mainActivity之间传递变量

我的onClickListener在OnCreate中使用main活动

 mFoodDataAdapter = new FoodDataAdapter();
        final ListView listFoodData = (ListView) findViewById(R.id.listView);
        listFoodData.setAdapter(mFoodDataAdapter);

        //Handle clicks on the ListView
        listFoodData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapter, View view, int whichItem, long id) {

                FoodData tempFoodData = mFoodDataAdapter.getItem(whichItem);
                //create a new dialog window
                DialogShowFood dialog = new DialogShowFood();
                // send in a reference to the note to be shown
                dialog.sendFoodDataSelected(tempFoodData);

                FoodDataAdapter adapter1 = new FoodDataAdapter();

                /*this is where i send the data to the DialogShowFood.java*/
                dialog.sendFoodDataAdapter(adapter1, whichItem);

                // show the dialog window with the note in it
                dialog.show(getFragmentManager(),"");
            }
        });
适配器内部的函数

  /*this is the function in the base adapter to delete the item*/
   public void deleteFoodData(int n){
            Toast.makeText(MainActivity.this,Integer.toString(n), Toast.LENGTH_SHORT).show();
            foodDataList.remove(n);
            notifyDataSetChanged();
        }

Toast输出要删除的项的适当索引,只是出于某种原因而不删除该项

从代码中,看起来您已经创建了一个新适配器“FoodDataAdapter adapter1=new FoodDataAdapter();”,但没有将其设置为ListView(listFoodData)。希望对你有所帮助!从代码中,看起来您已经创建了一个新适配器“FoodDataAdapter adapter1=new FoodDataAdapter();”,但没有将其设置为ListView(listFoodData)。希望对你有所帮助!
  /*this is the function in the base adapter to delete the item*/
   public void deleteFoodData(int n){
            Toast.makeText(MainActivity.this,Integer.toString(n), Toast.LENGTH_SHORT).show();
            foodDataList.remove(n);
            notifyDataSetChanged();
        }