gpt4 book ai didi

android - 从 SQLite 中获取数据只包含单个数据行

转载 作者:行者123 更新时间:2023-11-29 21:13:22 24 4
gpt4 key购买 nike

在我的应用程序中,我正在将数据存储到 SQLite,现在我正在尝试从 SQLite 获取数据到 Activity

根据要求,我一次只需要存储单个数据,我的表将只包含不超过一行的单个数据行。

所以我想如果表有数据行然后在 LoginActivity.javaonCreate(..)获取数据并在表单中显示/p>

获取:

The method SelectData(String) in the type myDBClass is not applicable for the arguments ()

myDBClass.java:

// Select Data
public String[] SelectData(String strOperatorID) {
// TODO Auto-generated method stub

try {
String arrData[] = null;

SQLiteDatabase db;
db = this.getReadableDatabase(); // Read Data

Cursor cursor = db.query(TABLE_NAME, new String[] { "*" },
"OperatorID=?",
new String[] { String.valueOf(strOperatorID) }, null, null, null, null);

if(cursor != null)
{
if (cursor.moveToFirst()) {
arrData = new String[cursor.getColumnCount()];

arrData[0] = cursor.getString(0); // DeviceID
arrData[1] = cursor.getString(1); // EmailID
arrData[2] = cursor.getString(2); // Event
arrData[3] = cursor.getString(3); // Operator
arrData[4] = cursor.getString(4); // EventOperator
}
}

cursor.close();
db.close();
return arrData;

} catch (Exception e) {
return null;
}
}

LoginActivity.java:-

public class LoginActivity extends Activity  {
.................


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_login);

btnLogout = (Button) findViewById(R.id.btnLogout);
btnCamera = (Button) findViewById(R.id.btnCamera);
btnGallery = (Button) findViewById(R.id.btnGallery);

txtDeviceID = (TextView) findViewById(R.id.txtDeviceID);
txtEmailID = (TextView) findViewById(R.id.txtEmailID);
txtEvent = (TextView) findViewById(R.id.txtEvent);
txtOperative = (TextView) findViewById(R.id.txtOperative);
txtEventOperator = (TextView) findViewById(R.id.txtEventOperator);

Intent intent = getIntent();
deviceID = intent.getStringExtra("deviceID");
emailID = intent.getStringExtra("emailID");
event = intent.getStringExtra("name");
operative = intent.getStringExtra("firstName");

txtDeviceID.setText(deviceID);
txtEmailID.setText(emailID);
txtEvent.setText(event);
txtOperative.setText(operative);
txtEventOperator.setText(event + " " + operative);

strEvent = txtEvent.getText().toString();
strOperative = txtOperative.getText().toString();

// Dialog
final AlertDialog.Builder adb = new AlertDialog.Builder(this);
AlertDialog ad = adb.create();

// new Class DB
final myDBClass myDb = new myDBClass(this);

// Save Data
long saveStatus = myDb.InsertData(
txtDeviceID.getText().toString(),
txtEmailID.getText().toString(),
txtEvent.getText().toString(),
txtOperative.getText().toString(),
txtEventOperator.getText().toString()
);

if(saveStatus <= 0)
{
ad.setMessage("Error!! ");
ad.show();
return;
}

// Show Data
String arrData[] = myDb.SelectData();
if(arrData != null)
{
txtDeviceID.setText(arrData[1]);
txtEmailID.setText(arrData[2]);
txtEvent.setText(arrData[3]);
txtOperative.setText(arrData[4]);
txtEventOperator.setText(arrData[5]);
}

if(txtEvent.getText().toString().equals("") && txtOperative.getText().toString().equals(""))
{
Intent intentCall = new Intent(LoginActivity.this, LicenseListActivity.class);
startActivity(intentCall);
}
}

最佳答案

从操作要求..像这样改变你的方法..

public String[] SelectData() {
// TODO Auto-generated method stub

try {
String arrData[] = new String[5];

SQLiteDatabase db;
db = this.getReadableDatabase(); // Read Data

Cursor cursor = db.query(TABLE_NAME, null, null, null, null,
null, null);

if (cursor != null) {
if (cursor.moveToFirst()) {

arrData[0] = cursor.getString(0); // DeviceID
arrData[1] = cursor.getString(1); // EmailID
arrData[2] = cursor.getString(2); // Event
arrData[3] = cursor.getString(3); // Operator
arrData[4] = cursor.getString(4); // EventOperator
}
}

cursor.close();
db.close();
return arrData;

} catch (Exception e) {
return null;
}
}

关于android - 从 SQLite 中获取数据只包含单个数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22110270/

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