Android 调用ArrayAdapter中的AlertDialog后刷新活动
我从显示数据库中数据集列表的Android 调用ArrayAdapter中的AlertDialog后刷新活动,android,android-arrayadapter,android-alertdialog,Android,Android Arrayadapter,Android Alertdialog,我从显示数据库中数据集列表的活动调用我的特定ArrayAdapter。如果用户点击ArrayAdapter的某个项目,它将打开警报对话框的扩展。如果用户点击此AlertDialog中的按钮,数据库中的一个数据集将被删除,并且AlertDialog为Disclesh()。现在我想刷新阵列适配器的视图 我找到了这样的解决方案 remove(position); notifyDataSetChanged(); 但我该怎么称呼这个呢?如果用户单击特定按钮说“嗨,适配器,请删除列表中的当前项”,我是否可
活动调用我的特定ArrayAdapter
。如果用户点击ArrayAdapter
的某个项目,它将打开警报对话框的扩展。如果用户点击此AlertDialog
中的按钮,数据库中的一个数据集将被删除,并且AlertDialog
为Disclesh()
。现在我想刷新阵列适配器的视图
我找到了这样的解决方案
remove(position);
notifyDataSetChanged();
但我该怎么称呼这个呢?如果用户单击特定按钮说“嗨,适配器,请删除列表中的当前项”,我是否可以将布尔值从AlertDialog
向后传递到ArrayAdapter
下面是一些代码:
活动:
final ListView list = (ListView) findViewById(R.id.myList);
DBhandler db = new DBhandler (context);
list.setAdapter(new MyAdapter(context, db.getMyItems()))
MyAdapter:
public View getView(int position, View row, ViewGroup parent) {
if(row != null) {
row.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final MyDialog myDialog = new MyDialog(context, currentItem);
myDialog.show();
}
});
}
}
MyDialog:
protected void onCreate(Bundle savedInstanceState) {
Button btn_delete = (Button) findViewById(R.id.btn_delete);
btn_delete.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
DBhandler db = new DBhandler (context);
db.delete(currentItem);
Toast.makeText(context, "item is deleted", Toast.LENGTH_SHORT).show();
dismiss();
}
});
}
我也找到了,但我不知道如何将其用于AlertDialog…在将alert dialog视为一个函数而关闭之前,您可以调用自定义适配器的函数
if(adapter.remove(postion)){
adapter.refreshdata();
}
函数是这样的
public boolean removedata(int position){
boolean isremoved = false;
// loop array data and remove specific item
// and return isRemoved value.
}
public void refreshdata(){
notifyDataSetChanged();
}
对不起,我不明白。。。我应该在哪里调用这些方法?我在AlertDialog中没有适配器实例,是吗?