gpt4 book ai didi

java - 如何从ListView项目中获取TextView?

转载 作者:行者123 更新时间:2023-12-01 06:20:30 24 4
gpt4 key购买 nike

我有以下用于制作 ListView 的代码:

    SimpleAdapter adapter=new SimpleAdapter(this, DictionaryDbWrapper.getInstance().getAllWords(), 
android.R.layout.simple_list_item_2, new String[]{DictionaryDbHelper.WORD, DictionaryDbHelper.CATEGORY},
new int[]{android.R.id.text1, android.R.id.text2});
mList.setAdapter(adapter);

它可以工作并显示元素,全部正确。我还有 OnItemClickListener 和以下用于按项目单击的代码:

        View view=mList.getSelectedView();

if (view==null) {
Toast.makeText(UpdatingWordActivity.this, "1", Toast.LENGTH_LONG).show();
}

但是 mList.getSelectedView() 也返回 null。为什么?

更新:为什么此转换会抛出异常:

View v=(View)mList.getItemAtPosition(0);

最佳答案

getSelectedView() 的调用适用于在 ListView 中使用单选按钮时。请参阅CHOICE_MODE_SINGLEgetItemAtPosition() 只是在底层适配器上调用 getItem(position) ;在你的情况下它是一个 SimpleAdapter。该转换会引发异常,因为 SimpleAdapter.getItem() 没有返回 View ,而是返回(我相信)适配器中给定位置的数据映射。其他适配器为 getItem() 方法返回其他内容。例如,CursorAdapter 返回一个光标。

第一个问题的答案请参见上面的答案

关于java - 如何从ListView项目中获取TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005037/

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