@sarascript

Как добавить то, что ввёл пользователь в AlertDialog в InfoWindow в GoogleMap?

После нажатия кнопки "OK" в окне AlertDialog моё приложение вылетает. У меня три разные кнопки для маркеров (отличаются лишь тем, что пользователь может выбрать иконку) и одной я написала следующий код:

fab2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(PersonMapActivity.this, "Маркер выбран", Toast.LENGTH_SHORT).show();
                GeoFire geofire = new GeoFire(PersonDatabaseRef);
                geofire.setLocation(personId, new GeoLocation(lastLocation.getLatitude(), lastLocation.getLongitude()));


                PersonPostion = new LatLng(lastLocation.getLatitude(),lastLocation.getLongitude());
                BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.oxygen);
                LayoutInflater li = LayoutInflater.from(context);
                View promptsView = li.inflate(R.layout.android_user_input_dialog, null);

                final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);

                // set prompts.xml to alertdialog builder
                alertDialogBuilder.setView(promptsView);


                final EditText userInput = (EditText) promptsView
                        .findViewById(R.id.editTextDialogUserInput);

                // set dialog message
                alertDialogBuilder
                        .setCancelable(false)
                        .setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int id) {
                                        // get user input and set it to result
                                        // edit text
                                        result.setText(userInput.getText());
                                    }
                                })
                        .setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int id) {
                                        dialog.cancel();
                                    }
                                });

                // create alert dialog
                AlertDialog alertDialog = alertDialogBuilder.create();
                alertDialog.show();
                MarkerOptions markerOptions = new MarkerOptions().position(PersonPostion)
                        .snippet(String.valueOf(result)).icon(icon)
                        .title("ss");


                mMap.addMarker(markerOptions);
            }
        });
    }


У меня есть два экрана - волонтёры и пользователи. Суть программы в том, что пользователь оставляет метку с просьбой помочь (выбирая нужный маркер) и имеет возможность вписать суть проблемы.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы