gpt4 book ai didi

android - 非法状态异常 : couldn't move cursor to position

转载 作者:行者123 更新时间:2023-11-29 16:06:21 26 4
gpt4 key购买 nike

有一个微调器,其中填充了来自设备的联系人。

Cursor contactsCursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME}, ContactsContract.Contacts.HAS_PHONE_NUMBER +" = "+ HAS_PHONE_NUMBER_STATE, null, ContactsContract.Contacts.DISPLAY_NAME +" ASC");

SimpleCursorAdapter sca = new SimpleCursorAdapter(getActivity(), android.R.layout.simple_spinner_item, contactsCursor, new String[] { ContactsContract.Contacts.DISPLAY_NAME }, new int[] {android.R.id.text1});

contactsSpinner.setAdapter(sca);

当我尝试设置选择时

String contactId = getContactSelectedId();      
if(null != contactId) {
contactsSpinner.setSelection(Integer.valueOf(contactId));
}

引发异常:

llegalStateException: couldn't move cursor to position x

堆栈跟踪:

07-31 01:07:08.854: E/AndroidRuntime(22745): FATAL EXCEPTION: main
07-31 01:07:08.854: E/AndroidRuntime(22745): java.lang.IllegalStateException: couldn't move cursor to position 1136
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:248)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.widget.Spinner.makeAndAddView(Spinner.java:544)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.widget.Spinner.layout(Spinner.java:495)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.widget.Spinner.onLayout(Spinner.java:459)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.view.View.layout(View.java:14055)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.view.ViewGroup.layout(ViewGroup.java:4604)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
07-31 01:07:08.854: E/AndroidRuntime(22745): at android.view.View.layout(View.java:14055)

我该如何解决这个问题?

最佳答案

setSelection(int position) 函数以一个位置作为参数,
但您为函数提供了所选项目的 ID。

您需要创建一个函数 getContactSelectedPosition() 或类似的东西。此函数将(可能)循环遍历适配器的数据,然后返回匹配触点的位置

关于android - 非法状态异常 : couldn't move cursor to position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958335/

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