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