Как можно динамически добавлять и удалять вид в Android? И это тоже магазин, даже если я закрыл приложение - PullRequest
2 голосов
/ 20 декабря 2011

В моем приложении я хочу добавить и удалить представление (например, Button или Textview, Checkbox) путем кодирования (программирования).

В деталях:

У меня есть Один EditText и Один Добавить Button. Пользователь Введите что-нибудь в EditText и нажмите кнопку Добавить Button, затем это добавится ниже LinearLayout, и если пользователь щелкнет на его / ее добавленном Button, оно перейдет к следующему LinearLayout.

Я добился успеха в этом.

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

И я тоже столкнулся с проблемой того, как я могу хранить все это. Например, кнопка «Добавить пользователя» 5 закрывает приложение, и всякий раз, когда он / она возвращается в приложение, мне нужно все, что он / она ранее добавил.

Вот что я сделал. http://dynamicandroidview.blogspot.com/2011/12/how-to-add-view-in-android-by-coding.html

1 Ответ

0 голосов
/ 19 января 2012

Попробуйте создать таблицу базы данных с минимум 2 столбцами, в вашем случае это будет id и buttonText. Теперь, когда пользователь нажимает кнопку «Добавить», он сохраняет текст в базе данных и динамически создает кнопку под всеми кнопками, которые уже были созданы ранее или как новая кнопка. Теперь в вашем методе onCreate получите количество текста, который хранится в базе данных. Что-то вроде следующего кода:

DB getData = DB.getInstance();
getData.open(this);
ArrayList<TextHolder> getList = new ArrayList<TextHolder>();
getList = getData.getAllTextFromGeT();
getData.close();
x = genList.size();

Здесь x будет числом / количеством элементов, которые уже сохранены в базе данных. Теперь вы можете другой int сказать i и, используя i и x в цикле for, вы можете динамически создавать кнопки. Внутри цикла вы можете сделать что-то вроде следующего, чтобы получить текст для всех создаваемых кнопок:

TextHolder firstOne = getList.get(i);
String text = firstOne.getText();

Вам также понадобится класс с методом getter и setters для преобразования элементов БД в объекты. Как и в приведенном выше коде, getText () - это наш метод getter, который получает элементы из базы данных и возвращает их здесь. здесь текст будет текстом кнопки. Таким образом, каждый раз, когда пользователь запускает приложение, он будет видеть все кнопки, которые он создал, когда он запускал приложение раньше, и вновь добавленная кнопка появится на месте, а также будет сохранена в базе данных для последующего поиска. Помните, что мы просто храним текст кнопки и присваиваем ей уникальный идентификатор, который помогает нам создавать кнопки. Надеюсь, это поможет

...