【发布时间】:2015-07-07 10:52:21
【问题描述】:
我是 Android 开发新手,我正在创建一个项目,其中包含一个包含 2 个表的数据库。
public class DbOpenHelper extends SQLiteOpenHelper{
private static final String DATABSE_NAME = "ExpenseManagerDB";
private static final int DATABASE_VERSION = 1;
public static final String TABLE_PEOPLE = "people";
public static final String COLUMN_ID = "id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_TP = "tp";
public static final String TABLE_TRANSACTIONS = "transactions";
public static final String COLUMN_TID = "tid";
public static final String COLUMN_PID = "pid";
public static final String COLUMN_DESC = "desc";
public static final String COLUMN_AMOUNT = "amount";
public static final String COLUMN_DT = "dt";
private static final String TABLE_CREATE_PEOPLE = "CREATE TABLE " + TABLE_PEOPLE + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_TP + " TEXT )";
private static final String TABLE_CREATE_TRANSACTIONS = "CREATE TABLE " + TABLE_TRANSACTIONS + " (" +
COLUMN_TID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_PID + " INTEGER, " +
COLUMN_DESC + " TEXT, " +
COLUMN_AMOUNT + " INTEGER "+
COLUMN_DT + " TEXT )";
public DbOpenHelper(Context context) {
super(context, DATABSE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(TABLE_CREATE_PEOPLE);
sqLiteDatabase.execSQL(TABLE_CREATE_TRANSACTIONS);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_PEOPLE);
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_TRANSACTIONS);
onCreate(sqLiteDatabase);
}
我创建了一个 ListView,我想显示人员表中的名称和交易表中每个用户的总金额。我知道该怎么做。
之后,我想单击列表中的某个名称并将其定向到另一个活动,在该活动中我只能为该用户输入交易,这意味着我必须将 listView 中该项目的 ID 带到新活动。
这样做的最佳方法是什么。简单地说我想了解如何获取与列表中名称相关的表中的数据(名称可以重复,只有is是主键)。
谢谢。
【问题讨论】:
标签: android sqlite android-listview android-studio