我是 android 编程新手,列表视图有问题在我的应用程序中,我必须从数据库(名称、ID、年份)中读取数据,然后在该用户必须选择其中一个项目并在新的活动再次我从数据库中读取数据并在此时根据用户的选择Ol列出一些其他项目在我的第一个活动中,我读取数据并将它们添加到listview..要选择我必须定义一个监听器..对吗?我像这段代码一样定义它
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列不同)发送到下一个活动..Bt我提到使用这段代码我可以获得整行选定的项目,我只想要一部分它(peot_id)你能帮我如何从选定的列表项中获取 Peot_ID 吗?我还有另一个问题..正如您在我的代码中看到的那样,我必须多次引用一个空间列表视图..每次我都用这段代码定义它
enter code hereListView list = (ListView) findViewById(R.id.list_poet_name);
我怎样才能一次定义这个列表并在我的代码中的多个地方使用它?比如公共变量或类似的东西谢谢你的帮助。