0
このコードではエラーが発生していますが、連絡先をデータベースに保存する方法はわかっています。私がcdata/cdata2を取り出して文字列を置くとうまく動作するからです。どんな助けもありがとう。アプリケーションデータベースに連絡先を保存するCursorIndexOutOfBoundsException
連絡先から文字列を受け入れるように変換するにはどうすればよいですか?
switch (item.getItemId()) {
case 1:
//Save current contact to stash database
Cursor phones2 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null, null);
String cdata = phones2.getString(phones2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String cdata2 = phones2.getString(phones2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
ContentValues values=new ContentValues(2);
values.put(DatabaseHelper.NAME, cdata);
values.put(DatabaseHelper.cALUE, cdata2);
db.getWritableDatabase().insert("constants", DatabaseHelper.NAME, values);
constantsCursor.requery();
//Refresh contact list
Intent refresh = new Intent(this, MainTab.class);
startActivity(refresh);
this.finish();
return(true);
case 2:
//uncoded option
Toast.makeText(this, "here is the info", Toast.LENGTH_SHORT).show();
}
ERROR: android.database.CursorIndexOutOfBoundsException:インデックス-1要求され、あなたがCursor.moveToFirst()を呼び出すのを忘れて2
ようにしてみたが、それは単に「CDATA」文字列は、カーソルの最初の位置を引き出します。リストの位置に合わせる必要があります。 – LuisCamarena
呼び出すことができるカーソルとリストの位置を一致させたい場合はphones2.moveToPosition(int) – iago