По нажатию на обычную 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);
}
});
}
});
}