Articles of android cursor

排序的联系人列表有重复,为什么?

我已经将我的手机联系人排序并列入了一个arraylist但是,我在列表中find了许多相同联系人姓名的副本。这种情况怎么样? 怎么避免这个? 这是我试过的, cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, “(” + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + “) ASC”); while (cursor.moveToNext()) { try { name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); contact_names_list.add(name); phone_num_list.add(phonenumber); } catch (Exception e) { e.printStackTrace(); } 谁能帮忙?

如何在android中正确关闭游标

我有这个数据库使用sqlite,我有关闭光标的问题,它说Application did not close the cursor or database object that was opened here这里Application did not close the cursor or database object that was opened here这里是logcat 10-18 08:40:56.354: E/Cursor(331): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here 10-18 08:40:56.354: E/Cursor(331): at android.database.sqlite.SQLiteCursor.(SQLiteCursor.java:210) 10-18 08:40:56.354: E/Cursor(331): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53) 10-18 08:40:56.354: E/Cursor(331): […]

SQLite查询SQLiteLog(1)没有这样的列:

我有3节课。 一个设置数据库和表,工作正常。 DBHelper.java private static final String TAG = “DBHelper”; public static final String DB_NAME = “pat_test.db”; public static final String TABLE5 = “sites”; public static final String S_ID = BaseColumns._ID; public static final String S_CLIENT = “client_of_site”; public static final String S_POSTCODE = “site_postode”; public static final String S_CON_NAME = “contact_name”; public static final […]

光标窗口分配2048 kb失败。 #Open Cursors = 1(此proc = 1打开的#rsrsors)

我正在制作一个使用数据库的Kiosk应用程序。 该应用程序一直在前台运行。 该应用程序有许多使用一个共享DataBaseHelper实例的线程。 该应用程序运行完美,但大多数时间在5或6小时后,我遇到这些exception然后应用程序崩溃: E / DataBaseHelper:2048 kb的游标窗口分配失败。 #Open Cursors = 1(此proc = 1打开的#rsrsors) E / CursorWindow:由于错误-24,无法分配大小为2097152的CursorWindow’/data/user/0/com.kios.frm/databases/YadProjectDB.db’。 E / SQLiteLog:(14)无法打开[00bb9c9ce4]第30192行的文件 E / SQLiteLog:(14)语句中止16:[SELECT number FROM sms LIMIT 5]无法打开数据库文件 E / SQLiteQuery:exception:无法打开数据库文件(代码14); 查询:SELECT编号FROM sms LIMIT 5 E / SQLiteLog:(14)os_unix.c:30192:(24) 打开(/data/user/0/com.kiosk.frm/databases/YadProjectDB.db-journal) – 我正确关闭了光标但仍然获得了这些exception。 那些例外是什么? 这些例外的原因是什么? 主要活动 private DataBaseHelper db = null; // Global MainActivity onCreate方法: db = […]

如何从android中选择独特的联系人

我想从Android只选择那些有电话号码的联系人的唯一联系人 。 我正在使用此代码 ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.Contacts.DISPLAY_NAME); // Find the ListView resource. mainListView = (ListView) findViewById(R.id.mainListView); // When item is tapped, toggle checked properties of CheckBox and // Planet. mainListView .setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parent, View item, int position, long id) { ContactsList planet = […]

使用CursorLoader查询专辑的歌曲

我想通过CursorLoader查询MediaStore来获取专辑的歌曲列表 我怎样才能做到这一点 ? 我可以使用以下代码获取设备的所有歌曲: static final String[] TRACK_SUMMARY_PROJECTION = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE}; public Loader onCreateLoader(int id, Bundle args) { String sortOrder = MediaStore.Audio.Media.TITLE + ” ASC”; String select = null; return new CursorLoader(getActivity(), MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, TRACK_SUMMARY_PROJECTION, select, null, sortOrder); } 我应该添加什么代码或修改来过滤特定专辑的歌曲?

android光标到JSONArray

如何将光标“转换”为JSONArray? 我的光标为3columns(_id,name,birth) 我搜索过,但我找不到任何例子

特定片段中的Android cursorwindow内存错误

我有一个Android应用程序,它使用服务每5ms收集传感器数据并将其插入到sqlite表中。 在典型的会话中,将有大约40分钟的录音。 所有这些代码似乎都运行正常。 我有一个奇怪的问题,如果用户导航到特定的片段我得到一个CursorWindow: Window is full: requested allocation XXX错误。 我不确定导致该错误的特定片段有什么特别之处,并且只发生在这个片段中 有问题的片段包含一个按钮,点击该按钮时会执行以下操作: 在外部存储上创建一些目录 复制临时表中的所有传感器数据,并将其插入更永久的表中 将整个.db文件的副本创建到外部存储 获取表的内容并将其写入CSV文件 查询另一个传感器数据表,并将所有传感器数据写入另一个CSV文件 使用媒体扫描程序扫描导出目录中的所有文件,以便可以通过MTP访问它们 片段代码看起来像这样(为简洁起见,许多catch块都被省略了 – 它们大多只是记录信息): public class SaveFragment extends Fragment implements View.OnClickListener { Button saveButton; MainActivity mainActivity; DBHelper dbHelper; Boolean subjectDataExists; MediaScanner mediaScanner; static ProgressDialog dialog; public SaveFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater […]

光标JOIN具有相同的列名称

如何访问具有相同名称的列? 我试过做cursor.getString(cursor.getColumnIndexOrThrow(“table.column”))但它似乎不起作用

IllegalStateException:尝试使用ContentProvider查询数据库时无效的表

尝试使用下面显示的自定义ContentProvider查询我的数据库时,我收到以下错误。 我已经确认该表存在正确的名称,但仍然无效。 我能够使用原始查询,但我希望我们使用ContentProvider模式进行练习。 谢谢,如果您需要更多信息,请与我们联系。 SQLiteOpenHelper public class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG = DatabaseHelper.class.getSimpleName(); private static final String DB_PATH = “/data/data/ashton.android.personal.worktc/databases/”; private static final String DB_NAME = “worktc.db”; private static final int DB_VERSION = 1; private SQLiteDatabase myDatabase; private final Context context; public DatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); this.context […]