Articles of 光标

无法find<custom provider>的提供者信息

我已经阅读了关于这个问题的所有内容,没有越过这个问题。 我有一个简单的应用程序从MainActivity开始,我的Content Provider在AndroidManifest.xml正确定义, ContentProvider类似乎是好的…这已经在运行4.3的nexus i9250和运行4.2.1的Asus Memo Pad上进行了testing作为运行Jelly Bean的VDevices。 该应用程序运行在每个实例,并没有崩溃, LogCat给我的唯一的东西是"Failed to find provider info for de.somename.provider"在我的片段之一,试图查询Content Provider并得到一个游标。 这里的代码: AndroidManifest.xml中 <?xml version="1.0" encoding="utf-8"?> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="de.somename.hvk3.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity> <activity android:name="de.somename.hvk3.UserSettingActivity" android:label="@string/settings" ></activity> <provider android:authorities="de.somename.provider" android:enabled="true" android:multiprocess="true" android:name=".hvkContentProvider" android:exported="true" ></provider> […]

Android:仅在显示键盘时在edittext中显示光标

如何在显示键盘时只显示EditText的光标。 目前光标闪烁,即使EditText不活跃,键盘被隐藏,这真的很烦人。 这是我的布局看起来如何: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main_root" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" > <ImageButton android:id="@+id/activity_main_add_button" android:layout_width="40dp" android:layout_height="40dp" android:background="@drawable/button" android:contentDescription="@string/desc_add" android:onClick="addGame" android:src="@android:drawable/ic_input_add" android:tint="@color/gray" /> <View android:id="@+id/stub1" android:layout_width="2dp" android:layout_height="40dp" android:layout_toRightOf="@id/activity_main_add_button" android:background="@color/light_gray" /> <ImageButton android:id="@+id/activity_main_menu_button" android:layout_width="40dp" android:layout_height="40dp" android:layout_toRightOf="@id/stub1" android:background="@drawable/button" android:contentDescription="@string/desc_add" android:onClick="showMenu" android:scaleType="fitXY" android:src="@drawable/square_button" android:tint="@color/gray" /> <View android:id="@+id/stub2" android:layout_width="2dp" android:layout_height="40dp" android:layout_toRightOf="@id/menu_button" android:background="@color/light_gray" /> <EditText android:id="@+id/activity_main_search" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_toRightOf="@id/stub2" android:background="@drawable/default_background" […]

我怎样才能让我的光标在方向改变中生存下来?

我正在尝试使我的应用程序旋转友好,但我有一些问题,保存游标。 游标可以保存在ListView显示的大约13k +行的数据,因此如果每次configuration更改时都要重新执行查询,则需要相当长的一段时间。 在我的onRetainNonConfigurationInstance() ,我返回我的光标,然后通过getLastNonConfigurationInstance()检索它。 但是,我的检索游标似乎已经closures,因此我的适配器不能再呈现列表。 据我所知,游标被closures,因为onDestroy()自动closures所有游标。 我保存这样的光标: @Override public Object onRetainNonConfigurationInstance() { return myCursor; } 并像这样检索它: myCursor = (Cursor)getLastNonConfigurationInstance(); if (myCursor == null) { // Do some stuff here (access DB, etc) } else { // we are returning from configuration change // Feed the cursor to the adapter } 我正在粘贴堆栈跟踪,如果有人想看看它: 01-25 16:57:45.637: ERROR/AndroidRuntime(12976): […]

获取联系人的姓名,而不是单个显示名称?

我目前正在使用Android联系人内容提供程序,并且当前可以使用以下代码访问联系人完整显示名称而不会造成问题: String[] PROJECTION = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER, }; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; String SELECTION = "LOWER(" + ContactsContract.Contacts.DISPLAY_NAME + ")" + " LIKE '" + constraint + "%' " + "and " + ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'"; Cursor cur = managedQuery(ContactsContract.Contacts.CONTENT_URI, PROJECTION, SELECTION, null, sortOrder); 不过,我希望能够分别获得联系人姓氏和姓氏,我试图使用StructuredName试图得到这个,但我似乎无法得到它的工作。 […]

Android:sqlite:cursor:getColumnIndex

我有一个相当复杂的查询(多个连接)规范化的SQLite数据库。 查询做一个SELECT *来启用一些自动的属性select逻辑(所以我不能消除“*”) 我遇到的问题是我的结果集包含具有相同属性名称的多个列。 例如,查询中每个表共有的一个属性是“_id”。 当我去调用"cursor.getColumnIndex("_id")" ,返回值始终是结果集列表列表中最后一个"_id"属性的索引(即不是我想要的)。 我很想能够使用我的SQL别名前缀像cursor.getColumnIndex("A._id")但是这是行不通的。 问题 看来cursor.getColumnIndex(AttributeName)返回最后一个“AttributeName”的索引。 任何人都可以确认吗? 另外,如何返回第一个属性的索引与“AttributeName”的任何build议? 或者更好的具有“AttributeName”的Xth属性?

如何在使用新的Loader API时保持ListView的位置?

在Honeycomb中, Loader API被引入作为通过在后台线程上执行繁重任务来向应用程序提供数据的正确方式。 在我的应用程序中,我正在用所有返回Cursor的Loader来replace所有的Cursor 。 由于Cursor.requery()现在已经被折旧了,所以build议只调用restartLoader并且允许在后台线程上再次完成工作,然后在onLoadFinished返回时changeCursor它。 所有这些工作奇妙的除了ListView不维护它的滚动位置,当我想重新查询数据,使用Cursor.requery()这以前工作,因为它是与更新的数据相同的游标实例。 我怎样才能刷新我的装载机而不失去滚动位置?

Android只能获得一个游标,其中列出的电子邮件地址为android 2.0

我有以下代码从content provider获取联系人 String[] columns = new String[] { ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts._ID, ContactsContract.Contacts.PHOTO_ID }; Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, columns, null, null, null); 我使用这个来获取他们的id的特定联系人的电子邮件: Cursor emails = getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contact.getContactId(), null, null); 我当前的实现传递光标中的每一行并获取它的电子邮件,并将它们存储在java对象的arrayList中。 我想知道是否有可能做的只是查询内容提供商,并返回一个只有联系人的光标/名称等有一个电子邮件地址列出。 这种方式有很长的等待时间来获取联系人列表。 我正在使用此列表作为列表适配器。 如果我只能得到有电子邮件的联系人,我可以在我的列表中使用游标适配器。 是这样的可能吗? 我怎么能加快这个过程?

Recyclerview +内容提供商+ CursorLoader

我在SQLite数据库中有一些数据。我有一个内容提供者将从数据库中获取数据。 现在的问题是我如何实现cursorLoader与recyclerview一起工作? 另外,任何人都可以解释为什么我们需要将数据从光标传输到一个对象来显示在listview / recyclerview而不是直接从光标? 例如,在自定义的cursorAdapter类中, Person person = new Person(cursor.getString(cursor.getColumnIndexOrThrow(PERSON_NAME))); textview.setText = person.getName(); 要么 textview.setText = cursor.getString(cursor.getColumnIndexOrThrow(PERSON_NAME)); 上述哪一种方法比较好? 在过去,我们曾经有过listview和gridview,现在看起来他们被合并成为回收站。 那么,我如何实现基于网格的recyclerview?

在相同的光标访问有序的图像和video

我正在使用android.content.CursorLoader类创build两个Cursor对象来访问存储在我的应用程序设备的用户上的媒体。 我想给用户的存储图像和video的网格视图,从Android画廊应用程序保留顺序。 目前我使用一个Cursor访问图像,一个访问video。 采用这种方法,所有图像都在所有video之前(即它们分成两个组)。 有没有办法从同一Cursor访问图像和video? 如果没有,是否有更好的方法来访问设备上的这些媒体? 作为参考,这里是我使用的代码: 对于图像: CursorLoader cursorLoader = new CursorLoader( mContext, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_PROJECTION, null, null, MediaStore.Images.Media._ID + " desc" ); mImageCursor = cursorLoader.loadInBackground(); 和video: CursorLoader cursorLoader = new CursorLoader( mContext, MediaStore.Video.Media.EXTERNAL_CONTENT_URI, VIDEO_PROJECTION, null, null, MediaStore.Video.Media._ID + " desc" ); mVideoCursor = cursorLoader.loadInBackground();

如何(正确地)从startManagingCursor转换到CursorLoader?

我更新我的android SDK到最新版本,现在它说, startManagingCursor()已deprecated 。 我需要帮助来更新我的代码来使用新的CursorLoader 。 private void fillData() { Cursor notesCursor = mDbHelper.fetchAllNotes(); startManagingCursor(notesCursor); NoteAdapter notes = new NoteAdapter(this, R.layout.notes_row, notesCursor); setListAdapter(notes); } 所以, startManagingCursor()是旧的,如果它被翻译,新的代码是什么样的?