CursorAdapter の操作で問題が発生しています。
ではbindView()
、次の方法でデータを取得します。
final String id = c.getString(c.getColumnIndexOrThrow(MySQLiteHelper.PROF_CONTACTS_KEY_ID));
final String name = c.getString(c.getColumnIndexOrThrow(MySQLiteHelper.PROF_CONTACTS_KEY_NAME));
このコードの直後に、私は呼び出します
Log.e("Log",id+" <=> "+name);
しかし、奇妙な問題のために、結果として ID が 1 つ前に進みました。
これは DB の状況です (エミュレーターからプルし、SQLite Manager で開きます):
そして、これは出力です:
より大きな数字 (>9) では、ID はさらに混乱し始めます。数字 10 が数字 1 になり、数字 13 が数字 5 になるなどです。多くの問題はありません。実際、一致していないのは ID だけです。 、他のすべての情報は対応していますが、詳細情報をユーザーに表示するために ID を渡す詳細アクティビティがあります。
これは、アダプターを適用するコードの一部です。
mCursor = mDb.rawGet("SELECT * FROM "+MySQLiteHelper.PROF_CONTACTS_TB_NAME+" LEFT JOIN "+
MySQLiteHelper.EXAMS_TB_NAME+" ON "+
MySQLiteHelper.PROF_CONTACTS_TB_NAME+"."+MySQLiteHelper.PROF_CONTACTS_KEY_COD_ESAME+"="+
MySQLiteHelper.EXAMS_TB_NAME+"."+MySQLiteHelper.EXAMS_KEY_COD
+ " ORDER BY " + MySQLiteHelper.PROF_CONTACTS_TB_NAME+"."+MySQLiteHelper.PROF_CONTACTS_KEY_ID);
if (mCursor.getCount() == 0) {
// error stuff.
} else {
String[] columns = new String[] {};
int[] to = new int[] {};
mDataAdapter = new CursorAdapterProfContacts(getSherlockActivity(), R.layout.item_prof_contact, mCursor, columns, to, 0);
mLvContacts.setAdapter(mDataAdapter);
}