0

私のシナリオでは、メイン画面にボタンがあり、ユーザーがボタンをクリックすると、ダイアログフォームにテキスト編集と2つのボタンが表示されます。私の問題は、編集テキストから値を取得しようとすると、何も起こらないように見え、値が常に NULL になることです。

これは私のコードです: メインアクティビティ内でダイアログを宣言します

private void popup() {
        AlertDialog.Builder builder;
        AlertDialog alertDialog;

        LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
        View dialog = inflater.inflate(R.layout.isbn_dialog,
                                       (ViewGroup) findViewById(R.id.layout_root));

                    // The edit text from dialog
        isbnInput = (EditText)dialog.findViewById(R.id.isbn);

        builder = new AlertDialog.Builder(this);
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), isbnInput.getText().toString(), Toast.LENGTH_LONG);
            }
        });

        builder.setView(dialog);
        alertDialog = builder.create();
        alertDialog.setTitle("Enter ISBN Number");
        alertDialog.show();
}

では、ダイアログ編集テキストから適切に値を取得するにはどうすればよいですか?

4

2 に答える 2

1

この行は、

 Toast.makeText(getApplicationContext(), isbnInput.getText().toString(), Toast.LENGTH_LONG).show();

show()ボタンのクリック内でトーストするのを忘れています..

それを試してみてください..

于 2012-06-02T08:08:24.490 に答える
0

AlertDialog で編集テキストの参照が表示されませんでした。

これであなたと同じように試してみて確かなことは私がeditTextきちんと取得できることです

    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setMessage(getResources().getString(R.string.my_email));
    final EditText input = new EditText(this);



    final LinearLayout layout = new LinearLayout(this);
    LayoutParams params = new LayoutParams(
            (int) getResources().getDimension(R.dimen.simple_alert_width_normal),
            LayoutParams.WRAP_CONTENT);
    params.setMargins(10, 0, 10, 0);
    layout.addView(input, params);

    alert.setView(layout);
    alert.setPositiveButton(R.string.OK,
            new DialogInterface.OnClickListener() {
            // DO some thing here

            });

    alert.setNegativeButton(R.string.cancel,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    // Canceled.

                }
            });

    alert.show();
于 2012-06-02T08:09:03.383 に答える