无法在另一个 activity 中获取列表视图项目 ID
Cannot not get listview item id in another activity
当点击 listview
项目时,它应该将 项目 ID 发送给另一个 activity。
我的如下,在
显示错误
Cursor cursor = trDb.getReminder(value);
错误是
Incompatible type.
Required: android.database.Cursor;
Found: com.android.app.TRListFormat
TRList.class
的代码片段
lv = (ListView)findViewById(R.id.tbr_list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Intent intent = new Intent(TRList.this, TRTimeReminder.class);
intent.putExtra("remId", (int)id);
startActivity(intent);
}
});
TRTimeReminder.class
的代码片段
Bundle extras = getIntent().getExtras();
if(extras != null){
int value = extras.getInt("remId");
if(value > 0){
Cursor cursor = trDb.getReminder(value); //this line is red showing the error I have written above
id_To_Update = value;
cursor.moveToFirst();
String title = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_TITLE));
String des = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_DES));
String date = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_DATE));
String time = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_TIME));
if (!cursor.isClosed()) cursor.close();
edTitle.setText(title);
edDes.setText(des);
dateView.setText(date);
timeView.setText(time);
}
}
getReminder
TRDBHelper.class
的方法
TRListFormat getReminder(int id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_ID, COLUMN_TITLE, COLUMN_DES,
COLUMN_DATE, COLUMN_TIME}, COLUMN_ID + "=?",
new String[]{String.valueOf(id)}, null, null, null, null);
if(cursor != null){
cursor.moveToFirst();
}
return new TRListFormat(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
}
这里:
TRListFormat getReminder(int id)
getReminder
return 类型是 TRListFormat
但您试图将 TRListFormat
class 对象分配给 Cursor
对象:
TRListFormat objTRListFormat = trDb.getReminder(value);
当点击 listview
项目时,它应该将 项目 ID 发送给另一个 activity。
我的如下,在
显示错误Cursor cursor = trDb.getReminder(value);
错误是
Incompatible type.
Required: android.database.Cursor;
Found: com.android.app.TRListFormat
TRList.class
lv = (ListView)findViewById(R.id.tbr_list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Intent intent = new Intent(TRList.this, TRTimeReminder.class);
intent.putExtra("remId", (int)id);
startActivity(intent);
}
});
TRTimeReminder.class
Bundle extras = getIntent().getExtras();
if(extras != null){
int value = extras.getInt("remId");
if(value > 0){
Cursor cursor = trDb.getReminder(value); //this line is red showing the error I have written above
id_To_Update = value;
cursor.moveToFirst();
String title = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_TITLE));
String des = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_DES));
String date = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_DATE));
String time = cursor.getString(cursor.getColumnIndex(TRDBHelper.COLUMN_TIME));
if (!cursor.isClosed()) cursor.close();
edTitle.setText(title);
edDes.setText(des);
dateView.setText(date);
timeView.setText(time);
}
}
getReminder
TRDBHelper.class
TRListFormat getReminder(int id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_ID, COLUMN_TITLE, COLUMN_DES,
COLUMN_DATE, COLUMN_TIME}, COLUMN_ID + "=?",
new String[]{String.valueOf(id)}, null, null, null, null);
if(cursor != null){
cursor.moveToFirst();
}
return new TRListFormat(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
}
这里:
TRListFormat getReminder(int id)
getReminder
return 类型是 TRListFormat
但您试图将 TRListFormat
class 对象分配给 Cursor
对象:
TRListFormat objTRListFormat = trDb.getReminder(value);