2014-01-25 4 views
0

Я создаю приложение, в котором мне нужно динамически создавать элементы. Я использую следующий код в методе onCreate().Создание компонентов динамически

TextView product = new TextView (this); 
product.setText ("" + pName + ""); 
//Add TextView to LinearLayout 
ll.addView (product); 

Хорошо работает, проблема в том, когда я поворачиваю телефон, элементы отображаются дублирующимися. Что я делаю не так?

+0

Вы также используете компоновку xml? Опубликуйте весь метод onCreate(). – Tautvydas

ответ

2

Когда вы поворачиваете свой телефон, он уничтожает действие и создает его снова, но он сохраняет все, чтобы возобновить, onCreate() метод, который вы создаете снова в текстовом режиме, хотя они уже находятся в представлении.

Вы должны проверить их перед созданием.

Вы можете сделать это, проверив savedInstanceState, если это не null, это означает, что он снова воссоздается.

if (savedInstanceState == null){ 
    // create your textviews 
} 
1

Вы программно создаете программный код TextView, и когда вы включаете телефон, вы не удаляете объект из своего макета, чтобы каждый раз добавлять элементы в свой макет при создании своей деятельности. Вы можете управлять им в своем методе onDestroy(). Надеюсь, это поможет.

Смежные вопросы