gpt4 book ai didi

java - 从 ListView 中删除项目的麻烦

转载 作者:行者123 更新时间:2023-12-01 12:47:00 27 4
gpt4 key购买 nike

所以我正在学习 Android 开发,几周前我开始了我的第一个项目。从那时起,我遇到了一些障碍,但我已经克服了它们。这个不一样。

我试图做到这一点,以便当用户触摸并按住 ListView 中的某个项目时,会弹出一个对话框,询问他们是否确定,然后单击"is",它将删除该项目。足够简单吧?

这是我的代码:

//passwordList is a Set<String> and so is passList
final Set<String> passwordList = mPrefs.getStringSet("pass", new HashSet<String>());
if (passwordList != null) {
passList = passwordList;
listFinal = passList.toArray(new String[passList.size()]);
list2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listFinal);
passwordListView.setAdapter(list2);
//onClickListener for the main list
passwordListView.setLongClickable(true);
passwordListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View strings, final int i, long l) {


AlertDialog.Builder deleteConf = new AlertDialog.Builder(main.this);
final int positionToRemove = i;

deleteConf.setTitle("Delete Password?");
deleteConf.setMessage("Are you sure you want to delete the password '" +listFinal[i] +"'?");

deleteConf.setNegativeButton("No", null);
deleteConf.setPositiveButton("Yes", new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int w) {
Log.d("dialog", "Pressed YES");
passwordList.remove(positionToRemove);
ArrayList<String> list = new ArrayList<String>(Arrays.asList(listFinal));
//Is this right?
passList.remove(positionToRemove);
//Or this one?
list.remove(positionToRemove);
list2.notifyDataSetChanged();
list2.notifyDataSetInvalidated();


}
});
deleteConf.show();
return false;

}
});
}

我觉得我没有从正确的数组中删除该项目。由于适配器源设置为 listFinal 我应该从那里删除该项目,对吗?但它不会让我调用 listFinal.remove(positionToRemove);

谁能帮我弄清楚这里出了什么问题吗?对话框显示,但当我单击"is"时,什么也没有发生。它知道我按了"is"(因此 log.d 按了"is"),但该项目永远不会被删除。

最佳答案

我注意到的第一件事是你有 2 个对象:list 和 list2 并且你调用列表.remove();list2.notifyDataSetChanged();

我没有看到其余的代码,但情况可能是这样。

关于java - 从 ListView 中删除项目的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24600497/

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