0

EditTextaで aを使用しようとしていDialogます。developer.android.com ( http://developer.android.com/guide/topics/ui/dialogs.html )のサンプルを使用します。Valueを押したときに EditTextを取得したいと思いますpositive Button
マイコード

    public Dialog onCreateDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(main_list.this);
    // Get the layout inflater
   final LayoutInflater inflater = main_list.this.getLayoutInflater();


    builder.setView(inflater.inflate(R.layout.serie_add, null))
            // Add action buttons
            .setPositiveButton(R.string.search, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {
                    View promptsView = inflater.inflate(R.layout.serie_add, null);
                    final EditText userInput = (EditText) promptsView
                            .findViewById(R.id.series);

                    Intent intent = new Intent();
                    intent.setClass(main_list.this, add_series.class);
                    intent.putExtra("name", userInput.getText());
                    startActivity(intent);
                }
            })
            .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                }
            });
    return builder.create();
}
4

2 に答える 2

1

ご覧のとおり、コードには 2 つの問題があります。1つ目は、onClick中にビューを膨張させているため、明らかに空です。インフレーションは事前に行う必要があり、その後でのみ onClick イベントに登録する必要があります。第二に、あなたはやっています:

userInput.getText() instead of
userInput.getText().toString();
于 2013-10-06T20:09:13.193 に答える
0

コードを次のように書き換えます。

public Dialog onCreateDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(main_list.this);
// Get the layout inflater
final LayoutInflater inflater = main_list.this.getLayoutInflater();

View view = inflater.inflate(R.layout.serie_add, null);
final EditText userInput = (EditText) view
                        .findViewById(R.id.series);

builder.setView(view)
        // Add action buttons
        .setPositiveButton(R.string.search, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int id) {
                View promptsView = inflater.inflate(R.layout.serie_add, null);


                Intent intent = new Intent();
                intent.setClass(main_list.this, add_series.class);
                intent.putExtra("name", userInput.getText().toString());
                startActivity(intent);
            }
        })
        .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {

            }
        });
return builder.create();
}
于 2013-10-06T20:05:45.803 に答える