1
私は初心者ですし、アンドロイドアプリを勉強しています。
私が達成したいのは、Layout 1
に、Dialog
がボタンクリックで表示され、SQLiteデータベースから必要なデータ(名前、アドレス、番号など)を取得し、その取得したデータを表示することです。
私の質問は、SQLite Cursorデータベースをもう一度作成する必要があるのか、それとも簡単な方法でこれを次のコードを使って実現できるのかということです。
は、ここですべてのヘルプは高く評価されるだろうMainactivityクラスの各関数からsqliteデータベースを取得する方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting_user);
setTitle("Setting User");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
sqLiteDataBase = new SQLiteDataBase(this);
Cursor cursor = sqLiteDataBase.get_user();
cursor.moveToFirst();
String name = cursor.getString(cursor.getColumnIndex(nm_us));
String addres = cursor.getString(cursor.getColumnIndex(add_us));
String telp = cursor.getString(cursor.getColumnIndex(tlp_us));
String answer = cursor.getString(cursor.getColumnIndex(ans_us));
String question = cursor.getString(cursor.getColumnIndex(que_us));
name_user = (EditText)findViewById(R.id.nameUser);
addres_user = (EditText)findViewById(R.id.addresUser);
telp_user = (EditText)findViewById(R.id.telpUser);
answer_user = (EditText)findViewById(R.id.answerUser);
question_user = (EditText)findViewById(R.id.questionUser);
btnUpdate = (Button)findViewById(R.id.btnUpdate);
name_user.setText(name);
addres_user.setText(addres);
telp_user.setText(telp);
answer_user.setText(answer);
question_user.setText(question);
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ShowConfirm();
}
});
}
private void ShowConfirm() {
//I call the database again, is there an easier way
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting_user);
setTitle("Update User");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
sqLiteDataBase = new SQLiteDataBase(this);
Cursor cursor = sqLiteDataBase.get_user();
cursor.moveToFirst();
String answer = cursor.getString(cursor.getColumnIndex(ans_us));
String question = cursor.getString(cursor.getColumnIndex(que_us));
LayoutInflater layoutInflater = LayoutInflater.from(SettingUser.this);
View promptView = layoutInflater.inflate(R.layout.dialog_security_user, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(SettingUser.this);
alertDialogBuilder.setTitle("Question Security");
alertDialogBuilder.setMessage(question);
alertDialogBuilder.setView(promptView);
final EditText question_text = (EditText) promptView.findViewById(R.id.jawabanSecurity);
alertDialogBuilder.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if ((question_text.getText().toString().equals(question))) {
ShowUpdatepass();
}else if ((question_text.getText().toString().equals(""))) {
Toast.makeText(SettingUser.this, "No zero", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(SettingUser.this, "wrong", Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}
私のコードです。ありがとう
それが問題であるか、値の数を扱うなら、カーソルはそれが複雑で保持しているカーソルだ場合はおそらく考えます。おそらくカーソルよりも 'getUser()'から返されたユーザオブジェクト(存在する場合)が問題を単純化できるか? – MikeT