初めてアプリケーションを開いたときに値を取得しようとしています。私はAlertDialogを膨らませてユーザから価値を得る。 EditTextにテキストを入力することはできませんが、カーソルが点滅しているのがわかります。AlertDialogでEditTextを編集できません
コードMainActivity
SharedPreferences sharedPreferences = getSharedPreferences("hasRunBefore", 0);
boolean hasRun = sharedPreferences.getBoolean("hasRun", false);
if (!hasRun) {
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putBoolean("hasRun", true);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater layoutInflater = LayoutInflater.from(this);
final View dialogView = layoutInflater.inflate(R.layout.alertdialog, null);
final EditText editText = (EditText) dialogView.findViewById(R.id.alert_dialog_editText);
builder.setView(dialogView)
.setPositiveButton("Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
regNum = editText.getText().toString();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
edit.putString("registerNumber", regNum);
edit.apply();
TextView textView = (TextView) findViewById(R.id.regNum_textView);
textView.setText(regNum);
} else {
//code if the app HAS run before
TextView textView = (TextView) findViewById(R.id.regNum_textView);
textView.setText(regNum);
}
にレイアウトファイルは
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/alertDialog"
>
<TextView
android:id="@+id/alert_dialog_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter Your Register Number"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="33dp" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/alert_dialog_editText"
android:hint="Type your register number here"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_below="@+id/alert_dialog_textview"
/>
</RelativeLayout>
私が間違って何をやっているのですか?
あなたが何かを書いているときにカーソルが動いていますか? – Tara
@Taraいいえ、カーソルは移動しません。 – thatrockbottomprogrammer
最終ローカル変数の代わりにETをグローバルに宣言する – Tara