@beregartur

Почему не срабатывает обработчик кнопки Android?

По нажатию на обычную FloatingActionButton вывожу диалоговое окно (без кода, на котором падает приложение - модальное окно работает ).
Далее должна была бы быть обработка нажатия кнопки (которая находится на модальном окне) но вот на этом месте приложение и падает. Возможно обработчик нужно переместить в другое место или указать явно с использованием this? Впрочем, что конкретно делать я не знаю. Подскажите пожалуйста!
private int counter = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
                final Dialog dialog = new Dialog(MainActivity.this);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(R.layout.dialog_layout);
                dialog.show();
                //инициализировали наш массив с элементами списка
                final ArrayList<View> allView = new ArrayList<View>();
                final ScrollView container = (ScrollView) findViewById(R.id.container);
                Button addButton = (Button) findViewById(R.id.button);
                addButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        counter++;
                        // береи данные из edit'a
                        EditText editText = (EditText) findViewById(R.id.editText);
                        float data = Float.parseFloat(editText.getText().toString());
                        //берем наш кастомный лейаут, находим все его элементы
                        final View view = getLayoutInflater().inflate(R.layout.item_layout, null);
                        ImageView deleteImage = (ImageView) view.findViewById(R.id.imageDellete);
                        TextView text = (TextView) view.findViewById(R.id.textView);
                        text.setText("Событие A" + counter +"=" + data);
                        //добавляем все что создаем в массив
                        allView.add(view);
                        //добавляем елементы в контейнер
                        container.addView(view);
                    }
                });
            }
        });
    }

59ee31b418dd7025338202.png
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
@red-barbarian
https://developer.android.com/guide/topics/ui/dial...
Хорошо описано про диалог. Также там описано что не нужно делать диалоги, а использовать fragment dialog.
И что у Вас в 44 строке? Там null. Из нее ошибка.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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