1. ホーム
  2. アンドロイド

[解決済み】テキスト入力ダイアログ Android

2022-03-26 18:13:48

質問

をクリックすると Button で印刷される)。 SurfaceView というテキストが欲しい。 Dialog が表示されるようにし、その結果を String . 私は、テキスト Dialog を現在の画面にオーバーレイ表示させたい。どうしたらいいでしょうか?

どのように解決するのですか?

を使用する良い機会のように聞こえる。 アラートダイアログ .

基本的なことですが、Androidにはこれを行うための組み込みのダイアログがありません(私の知る限り)。 幸いなことに、標準的なAlertDialogを作成した上で、少し余分な作業をするだけでよいのです。 ユーザーがデータを入力するためのEditTextを作成し、それをAlertDialogのビューとして設定するだけです。 入力の種類をカスタマイズするには、次のようにします。 setInputType 必要であれば

メンバー変数が使えるなら、その変数にEditTextの値を設定するだけで、ダイアログが終了した後もその値が持続します。 メンバー変数が使えない場合は、リスナーを使って、文字列の値を適切な場所に送る必要があるかもしれません。 (これが必要であれば、もっと編集して詳しく説明します)。

クラス内。

private String m_Text = "";

ボタンのOnClickListener内(またはそこから呼び出される関数内)。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");

// Set up the input
final EditText input = new EditText(this);
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);

// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
    @Override
    public void onClick(DialogInterface dialog, int which) {
        m_Text = input.getText().toString();
    }
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.cancel();
    }
});

builder.show();