1

2 つの EditText ボックス (正と負のボタン) を含むダイアログ ボックスでユーザーにプロンプ​​トを表示しようとしています。EditText ボックスから値を取得しようとすると、null ポインター例外が発生します。ここに私のコードがあります、

            LinearLayout layout = new LinearLayout(context);
            layout.setOrientation(LinearLayout.VERTICAL);

            LayoutInflater inflater = LayoutInflater.from(context);
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("New Location");
            builder.setView(inflater.inflate(R.layout.new_location_dialog, null)); 

            final EditText titleBox = (EditText)findViewById(R.id.title);
            final EditText descriptionBox = (EditText)findViewById(R.id.description);             

            builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int button) {

                    String title = titleBox.getText().toString();
                    String description = descriptionBox.getText().toString();
                    Log.d("User Setting title / description to: ", title + " : " + description);

                    //Add new Point to Map
                    addGeoPointToMap(mapOverlays,longpressLocation,title, description);    

                    return;
                }
            });

            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    Log.d("Cancel setting Title & adding point","");
                    return;
                }
            });
            builder.show();

誰かが私に手を差し伸べてくれたら、私はそれを感謝します!また、アプリ全体で複数のダイアログ ボックスを処理するための最適な慣例を誰かが説明できれば、ボーナス マークが付けられます。

4

1 に答える 1

7

EditText オブジェクトを正しく参照していません。

以下を実行すると動作します。

View v = inflater.inflate(R.layout.new_location_dialog, null);
builder.setView(v); 

//here is your mistake:

final EditText titleBox = (EditText)v.findViewById(R.id.title);
final EditText descriptionBox = (EditText)v.findViewById(R.id.description);    
于 2012-10-16T15:46:26.177 に答える