gpt4 book ai didi

java - SQLite 数据检索到一个类

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:29 25 4
gpt4 key购买 nike

因此,正如您在下面的屏幕截图中看到的,我有六个按钮:例如B1,B2。当我单击某个按钮(例如 B1)时,我编写了一个函数,该函数从 SQLite DB 获取数据行,并使用 B1 作为主键来执行此操作。我有一个 java 类和一个 Activity ,然后在不同的 TextView 中分别显示数据库中的信息。 B1 的数据检索一切正常。

我的问题是:由于我只有一个 Activity 来显示数据,并且检索的数据取决于他们选择的按钮(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 类上的代码,用于在 TextView 中显示正确的数据:

 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")));

SO FOR EXAMPLE HERE.. I WANT IT SO THAT IF THEY CLICK ON B2 THEN I WOULD HAVE

res = myDb.getProgressBar2(); THEN ALL THE TEXTVIEWS SET TO THE B2 DATA

下面的屏幕截图向您展示了单击 b1 或 b2 的含义:

ButtonClickscreen

最佳答案

您应该只使用一个函数并传递按钮 ID,例如“B1”代表按钮 1。并在按钮单击时调用此函数,并在按钮的单击监听器中完成其余工作。

在你的按钮上说B1的点击、调用功能getProgressBar("B1");

你的函数将是

公共(public)光标 getProgressBar(String buttonId){

SQLiteDatabase db = this.getWritableDatabase();

Cursor res = db.query(TABLE_NAME,null,COL_2 + "=?",new String[]{buttonId},null,null,null);
return res;

}

关于java - SQLite 数据检索到一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com