gpt4 book ai didi

Android 对话框不能 'see' 最终/全局变量

转载 作者:行者123 更新时间:2023-11-30 04:33:45 27 4
gpt4 key购买 nike

我有一个 AlertDialog,由于某些奇怪的原因,它无法访问最终的 int deptID。将值传递给 ConfirmRemoval 函数时,值是正确的,但是当我进入对话框的 onClick 事件时,最终的 int 是未定义的!

我什至尝试将其更改为全局变量,但仍然没有成功。有人知道这是怎么回事吗?

@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);

this.setContentView(R.layout.generic_list);
Bundle extras = getIntent().getExtras();
if (extras == null) {return;}
this.getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> adv, View v,
int pos, long id) {
Cursor cursor = (Cursor)adv.getItemAtPosition(pos);
int deptID = cursor.getInt(cursor.getColumnIndex("DeptID"));
ConfirmRemoval(deptID);
return true; //NOTE! If returning false, the itemClick event will fire
}
});
}

private void ConfirmRemoval(final int deptID){
AlertDialog.Builder bld = new AlertDialog.Builder(this);
bld.setCancelable(false);
bld.setTitle(R.string.deptRemove);
bld.setMessage(R.string.deptRemoveMsg);
bld.setPositiveButton("OK", new AlertDialog.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

Dept.RemoveDept(deptID);
dialog.dismiss();
GetDepartments();
}


});
bld.setNegativeButton("Cancel", new AlertDialog.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = bld.create();
alert.show();
}

谢谢,鲁尼

最佳答案

好的,您必须编写自己的 OnClickListener - 类似于:

public static class processAlert implements DialogInterface.OnClickListener {
int deptID;
processAlert(int _id){
deptID = _id;
}
public void onClick(DialogInterface dialog, int which) {
Dept.RemoveDept(deptID);
dialog.dismiss();
GetDepartments();
}
}

当你创建对话框时

bld.setPositiveButton("OK",new processAlert(deptID))

关于Android 对话框不能 'see' 最终/全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com