SQLite数据检索到一个类

时间:2017-10-26 16:21:55

标签: java android sqlite android-sqlite

所以,正如您在下面的截图中看到的,我有六个按钮:例如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来显示我的意思:

ButtonClickscreen

1 个答案:

答案 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;

}