あるアクティビティにデータベースがあり、別のアクティビティで開きたいのですが、このアクティビティでもリストビューを作成したいと思います。
私のコードは次のとおりです
messagedb=context.openOrCreateDatabase("message",0, null);
messagedb.execSQL(
"CREATE TABLE IF NOT EXISTS tab( " +
" _id INTEGER PRIMARY KEY AUTOINCREMENT ," +
" nickname varchar,sender INT(13),body varchar)");
messagedb.execSQL("INSERT INTO tab VALUES('"+nickname+"','"+sender+"','"+sb+"')");
messagedb.close();
mydb.close();
値を挿入すると、データベースに4つの列があると表示されますが、3つの列の値があります.............テーブルから_idを自動的に追加するにはどうすればよいですか。
私のlistViewアクティビティは以下のとおりです
public class ListView extends ListActivity {
SQLiteDatabase messagedb;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.my_list);
messagedb=ListView.this.openOrCreateDatabase("message",0, null);
messagedb.execSQL(
"CREATE TABLE IF NOT EXISTS tab(" +
" _id INTEGER PRIMARY KEY AUTOINCREMENT," +
" nickname varchar,sender INT(13),body varchar)");
Cursor cur = messagedb.rawQuery("select _id, nickname, body from tab", null);
String[] from = new String[] { "nickname", "body" };
int[] to = new int[] { R.id.sender_entry, R.id.body_entry};
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.my_list_entry, cur, from, to);
this.setListAdapter(mAdapter);
cur.close();
messagedb.close();
}
protected void onListItemClick(android.widget.ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String nickName = ((TextView) v.findViewById(R.id.sender_entry)).getText().toString();
String body = ((TextView) v.findViewById(R.id.body_entry)).getText().toString();
Intent intent = new Intent(ListView.this,MessageViewPage.class);
Bundle b = new Bundle();
b.putString("nick", nickName);
b.putString("body", body);
intent.putExtras(b);
startActivity(intent);
finish();
}
}