所以,正如您在下面的截图中看到的,我有六个按钮:例如B1,B2。 当我点击某个按钮说B1时,我写了一个从我的SQLite DB中获取数据行的函数,它使用B1作为主键来执行此操作。我有一个java类和一个活动,然后在不同的textview中分别显示数据库中的信息。一切都适用于B1的数据检索。
我的问题是:由于我只有一个活动来显示数据,并且检索的数据取决于他们选择的按钮(B1,B2等)如何确定哪个数据检索功能正确使用对应他们按哪个按钮?
数据检索功能代码:
public Cursor getProgressBar1() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"B1"},null,null,null);
return res;
}
public Cursor getProgressBar2() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"B2"},null,null,null);
return res;
}
public Cursor getProgressBar3() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"B3"},null,null,null);
return res;
}
public Cursor getProgressBar4() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"S1"},null,null,null);
return res;
}
public Cursor getProgressBar5() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"S2"},null,null,null);
return res;
}
public Cursor getProgressBar6() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{"S3"},null,null,null);
return res;
}
Details类上的代码,用于在TextViews中显示正确的数据:
SQLiteDatabase sqLiteDatabase;
DatabaseHelper myDb;
Cursor res;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.verify_line);
myDb = new DatabaseHelper(this);
sqLiteDatabase = myDb.getReadableDatabase();
res = myDb.getProgressBar1();
TextView LT = (TextView) findViewById(R.id.textViewspinner1);
TextView PT = (TextView) findViewById(R.id.textViewspinner2);
TextView QTY = (TextView) findViewById(R.id.textViewQuantity);
TextView DUR = (TextView) findViewById(R.id.textViewDuration);
TextView ST = (TextView) findViewById(R.id.textViewStartTime);
TextView ET = (TextView) findViewById(R.id.textViewendtime);
if (res.moveToFirst()) {
LT.setText(res.getString(res.getColumnIndex("LINETYPE")));
PT.setText(res.getString(res.getColumnIndex("PACKAGETYPE")));
QTY.setText(res.getString(res.getColumnIndex("QUANTITY")));
DUR.setText(res.getString(res.getColumnIndex("DURATION")));
ST.setText(res.getString(res.getColumnIndex("STARTTIME")));
ET.setText(res.getString(res.getColumnIndex("ENDTIME")));
所以这里的例子..我想要因为如果他们点击B2那么我 会有
res = myDb.getProgressBar2();然后所有的TEXTVIEWS设置为B2数据
这是一个屏幕截图,通过点击b1或b2来显示我的意思:
答案 0 :(得分:0)
你应该只使用一个函数并为button1传递按钮id,例如“B1”。 并在按钮的单击上调用此函数,并在按钮的单击侦听器中执行其余工作。
按钮上的表示B1的点击,通话功能 getProgressBar( “B1”);
,您的功能将是
public Cursor getProgressBar(String buttonId) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{buttonId},null,null,null);
return res;
}