gpt4 book ai didi

java - AlertDialog 中选项列表的 ListView

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

我试图在 AlertDialog 中插入一个 ListView 来显示一些选项,但构造函数出现错误: ArrayAdapter(this, R.layout.option_list, R.id.option, option_items);它说无法解析构造函数。代码如下。

private void LongClick() {
myList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View viewClicked, int position, long IDinDB) {
Cursor res = myDb.GetRow(IDinDB);
if (res.moveToFirst()) {
long idDB = res.getLong(DatabaseHelper.ROWID);
}

String[] option_items = {"Delete"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.option_list, R.id.option, option_items);
optionList.setAdapter(adapter);
optionList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ViewGroup vg = (ViewGroup) view;
TextView txt = (TextView) vg.findViewById(R.id.option);
Toast.makeText(ViewActivity.this, txt.getText().toString(), Toast.LENGTH_LONG).show();
}

});

return true;
}

});

}

任何帮助将不胜感激。

最佳答案

当您编写 this 时,它表示您写入的当前对象实例类。当您编写 new AdapterView.OnItemLongClickListener() 时,您创建了一个新的匿名类,因此其方法中的单词 this 将引用这个新创建的类对象。 ArrayAdapter 在构造函数中需要 context 实例,而不是 AdapterView.OnItemLongClickListener。所以你需要引用上下文对象。你可以得到它:

a) 来自方法参数 viewClicked 对象 (viewClicked.getContext())

b) 作为 ViewActivity.this 就像您在 onItemClick

中所做的那样

关于java - AlertDialog 中选项列表的 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569424/

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