Ich schreibe eine App, in der ich die Daten der ersten Zeile aus der SQLite-Datenbanktabelle abrufen muss. Ich habe den Code geschrieben, um Daten in die Datenbank zu speichern, aber jetzt möchte ich die Daten der ersten Zeile aus der Datenbank in TextViews abrufen.
HelperClass:-
// Daten auswählen
public String[] SelectData(String strOperatorID) {
//TODO-generierte Methode
try {
String arrData[] = null;
SQLiteDatabase db;
db = this.getReadableDatabase(); // Daten lesen
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;
}
}
Wie Sie sehen können, habe ich den Code geschrieben, um Daten auf der Grundlage von OperatorID=? abzurufen, aber jetzt muss ich einfach die Daten der ersten Zeile in Textviews abrufen.
Lassen Sie mich also wissen, welche Änderungen ich in meinem obigen Code vornehmen muss, um die Daten der ersten Zeile abzurufen, wenn sie existieren, andernfalls soll kein Toast angezeigt werden.
LoginActivity.java:
// Daten speichern
long saveStatus = myDb.InsertData(
txtDeviceID.getText().toString(),
txtEmailID.getText().toString(),
txtEvent.getText().toString(),
txtOperative.getText().toString(),
txtEventOperator.getText().toString()
);
Mit dem obigen Code speichere ich Daten in der Datenbank, und genauso möchte ich Daten aus der Datenbank abrufen und anzeigen, wenn der Benutzer LoginActivity.java aufruft, egal ob er die App ordnungsgemäß geschlossen hat...
Aktualisiert:-
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();
// neue Klasse DB
final myDBClass myDb = new myDBClass(this);
// Daten speichern
long saveStatus = myDb.InsertData(
txtDeviceID.getText().toString(),
txtEmailID.getText().toString(),
txtEvent.getText().toString(),
txtOperative.getText().toString(),
txtEventOperator.getText().toString()
);
if(saveStatus <= 0)
{
ad.setMessage("Fehler!! ");
ad.show();
return;
}
// Daten anzeigen
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);
}
}