gpt4 book ai didi

android - 使用对话框删除 ListView 项

转载 作者:行者123 更新时间:2023-11-29 18:02:20 24 4
gpt4 key购买 nike

我正在尝试通过对话框删除 ListView 项目,但是该项目 (message) 是在单独的 onClick() 中创建的事件:

final Button addButton = (Button) findViewById(R.id.Button1);
addButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
Context context = getApplicationContext();
CharSequence addToast = "Choice added";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, addToast, duration);
adapter.remove(dMessage);
EditText editText = (EditText) findViewById(R.id.edit_choice);
String message = editText.getText().toString();
adapter.add(message);
toast.show();
editText.setHint(R.string.edit_another_choice);
editText.setText(null);
}
});

当我使用对话框 onClick() 时,我希望它删除我正在尝试执行的所选 message:

listView.setOnItemClickListener(new OnItemClickListener(){

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(true);
builder.setTitle("Delete choice");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
int index = listView.getSelectedItemPosition();
adapter.remove(adapter.getItem(index));
}
});

我不能执行 adapter.remove(message); 因为 message 必须在选择按钮时以另一种方法创建,所以我尝试使用 getSelectedItemPosition() 方法,但它抛出 ArrayOutOfBoundsException 我觉得解决方案可能很容易解决,但我无法弄清楚。任何帮助将不胜感激。

最佳答案

您不必调用 getSelectedItemPosition。您已经从 onItemClick 参数中获得了位置。

IDE 自动生成方法签名如下:

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

相反,将其更改为这样会更有意义

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

我猜想(如果您好奇的话,您可以调试或登录以确认)没有选定的项目,因此 getSelectedItemIndex 可能会返回 -1 以表示“未选择”。这将解释索引越界异常。

关于android - 使用对话框删除 ListView 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15281317/

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