Android: создание нового ImageView при каждом нажатии кнопки - PullRequest
0 голосов
/ 10 июня 2018

Я хочу генерировать и добавлять новый ImageView одним нажатием кнопки при каждом нажатии кнопки.Это мой код:

entwicklungskarte.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ImageView iv = new ImageView(getApplicationContext());
            iv.setImageResource(R.drawable.erfindungek);
            ResourcenActivity.entwicklungskarten.add(iv);
        }
    });

Но когда я дважды нажимаю на кнопку, я получаю эту ошибку:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Я думал, что при каждом нажатии кнопки будет создаваться новый ImageView.,Но это явно не так.Есть ли другой способ создать и добавить ImageView в макет нажатием кнопки?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018
if(view != null) {
    return view; 
}
0 голосов
/ 10 июня 2018

Объявите поле previousId в вашем классе private int previousId = 0;Вам нужно будет установить инкрементальный идентификатор вашего изображения iv

 iv.setId(++previousId);

до

ResourcenActivity.entwicklungskarten.add(iv);

, чтобы каждый раз, когда соответствующего родителя просили добавить нового ребенка с другим ID, чемпредыдущий.

...