android 的 getSelectedItemPosition() 方法的问题

在一个AlertDialog中使用了setSingleChoiceItems()方法设置了单选,然后在AlertDialog的setButton()方法中设置了第一个按钮... 在一个AlertDialog中使用了setSingleChoiceItems()方法设置了单选,然后在AlertDialog的setButton()方法中设置了第一个按钮的响应函数,这时如下代码会出问题:

Log.e("!",dialog.getListView().getAdapter().getItem(1).toString());
//上面这句取到了列表数组中相对应的值
Log.e("!",dialog.getListView().getSelectedItemPosition()+"");
// 这句返回的值为-1 无论当前选定了什么
这是为啥子呢?
展开
 我来答
百度网友8173f0e2
推荐于2016-11-08 · TA获得超过4196个赞
知道大有可为答主
回答量:2181
采纳率:22%
帮助的人:911万
展开全部
这是一个默认值,不是手动去选择某一个item的position值,这个是在控件初始化完成后,这个值就已经是定死的,不管选择哪个这个值都是既定的值。
这个是会在选择其中一个item的时候会改变,如果在点击一个item之后,再Log.e("!",dialog.getListView().getSelectedItemPosition()+"");
应该可以看到是现在想要的值一定是在触发这个item被选中的事件中。
dialog.getListView().getSelectedItemPosition()
getListView是返回了listview
然后调用listview的getSelectedItemPosition,这个不是点单选以后返回选中,而是指的那一个条目的时候选中的。
可以去看看api文档说明关于listview。
wicked_Harmous
2012-09-27 · TA获得超过690个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:220万
展开全部
这是一个默认值,不是你手动去选择某一个item的position值,这个是在控件初始化完成后,这个值就已经是定死的,不管你选择哪个这个值都是既定的值。
这个是会在你选择其中一个item的时候会改变,但是这个时候你应该是已经去处理别的事情了,如果你在点击一个item之后,再Log.e("!",dialog.getListView().getSelectedItemPosition()+"");你应该可以看到是你现在想要的值,注意,一定是在触发这个item被选中的事件中。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glynn1984
推荐于2018-03-10 · 超过19用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:57.2万
展开全部
dialog.getListView().getSelectedItemPosition()

getListView是返回了listview
然后你调用listview的getSelectedItemPosition,这个不是你点单选以后返回给你选中,而是指的你点那一个条目的时候选中的。
你可以去看看api文档说明关于listview的
追问
public int getSelectedItemPosition ()
Since: API Level 1
Return the position of the currently selected item within the adapter's data set
Returnsint Position (starting at 0), or INVALID_POSITION if there is nothing selected.

这不是说返回adapter数据集中的当前选择的item么?
返回的是从0开始的位置,当没有选择的时候返回INVALID_POSITION

……好像明白了,它返回的是不是我那个按钮Position值?
追答
当你listview某个item被选中的时候,这个接口能返回那个位置的position,这个item被选中指的不是你的单选框勾上,而是指整条条目处于选中状态。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丁德
2015-09-23 · 超过28用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:61.3万
展开全部
具体神秘问题,说清楚啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式