私は Android プログラミングが初めてで、リスト ビューに問題があります。私のアプリでは、データベース (名前、ID、年) からデータを読み取り、それらをリストビューに追加する必要があります。その後、ユーザーは項目の 1 つを選択し、新しい再びアクティビティ db からデータを読み取り、ユーザーの選択に基づいて他の項目の一部をリストします Ol の時点で 最初のアクティビティでは、データを読み取り、それらをリストビューに追加します。選択するには、リスナーを定義する必要があります。このコードのように定義します
enter code here @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_book);
String SDcardPath = Environment.getExternalStorageDirectory().getPath();
String DbPath = SDcardPath + "/Tosca/" + "persian_poem.db";
ListView list = (ListView) findViewById(R.id.list_poet_name);
try {
db = SQLiteDatabase.openDatabase(DbPath,null,SQLiteDatabase.CREATE_IF_NECESSARY);
getData();
db.close();
}
catch (SQLiteException e) {
Toast.makeText(this, e.getMessage(), 1).show();
}
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
ListView list = (ListView) findViewById(R.id.list_poet_name);
Log.i(TAG, "Listview get Item Pos");
Peot_ID.putString ("Peot_ID", (String) list.getItemAtPosition(position));
Intent Book_list_intent = new Intent (Read.this,Book_list.class);
Book_list_intent.putExtras(Peot_ID);
startActivity(Book_list_intent);
}
});
}
private void getData() {
try {
//txtMsg.append("\n");
// obtain a list of from DB
String TABLE_NAME = "classicpoems__poet_contents";
String COLUMN_ID = "poet_id";
String _ID = "_id";
String COLUMN_NAME = "poet_name";
String COLUMN_CENTURY = "century_start";
String [] columns ={_ID,COLUMN_ID,COLUMN_NAME,COLUMN_CENTURY};
Cursor c = db.query(TABLE_NAME,columns,null, null, null, null, COLUMN_ID);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, c,
new String[] {COLUMN_NAME,COLUMN_CENTURY}, new int[] {android.R.id.text1,android.R.id.text2}, 0);
ListView list = (ListView) findViewById(R.id.list_poet_name);
list.setAdapter(adapter);
} catch (Exception e) {
Toast.makeText(this, e.getMessage(), 1).show();
}
}
しかし、ここで問題があります.peot_id(dbの_id列とは異なります)のデータを次のアクティビティに送信したい..このコードでは、選択したアイテムの行全体を取得できると述べましたが、 it(peot_id) 選択したリスト項目から Peot_ID だけを取得する方法を教えてください。別の質問があります..私のコードでわかるように、1つの空間リストビューを数回参照する必要があります..このコードで定義するたびに
enter code hereListView list = (ListView) findViewById(R.id.list_poet_name);
このリストビューを 1 回定義して、コード内の複数の場所で使用するにはどうすればよいですか? public 変数のような sth またはそのような sth 助けてくれてありがとう。