2010-06-18 2 views
3

Я пытаюсь научиться создавать приложения для Android.Новое для Android: динамически меняющиеся виды

Первое простое приложение, которое станет компонентом более крупного приложения, которое я надеюсь построить, - это иметь кнопку на экране, где при нажатии на нее добавляется что-то новое для представления.

Например:

Imagine макет, который имеет только кнопку:

[Create!] 

Когда эта кнопка нажата, то вид получает новый ряд добавил к нему:

[Create!] 
A Something! 

При последующих прессах добавляется больше рядов

[Create!] 
A Something! 
A Something! 

И так далее.

Я сделал LinearLayout и поместил в него кнопку, и приложил к нему прослушиватель кликов. Все это отлично работает. Я не могу понять, как получить ручку LinearLayout в функции onClick, с которой я добавлю() новый TextView, который говорит «A Something!».

Есть ли я на правильном пути? Какую основную вещь мне не хватает? Благодаря!

ответ

1

Я думаю, вы приближаетесь к этому неправильно. Вы должны посмотреть в ListView и SimpleArrayAdapter. Это добавит элементы в формат списка, с которым пользователи будут более знакомы. В Google есть несколько хороших примеров, которые используют это (например, пример их Notepad). Особенно, если вы новичок в Android, вы должны посмотреть их демо, чтобы познакомить вас с основами. вы можете найти их here

+0

Спасибо, я сделаю это. Я играл с ListView, и я получил его для отображения со статическими данными ... просто жесткий кодированный массив. Я буду играть с примерами, чтобы увидеть, как я могу сделать это динамически. Благодаря! –

0

Это из памяти, поэтому может быть не совсем правильно.

В вашем макете вы хотите указать LinearLayout id.

< LinearLayout
XMLNS: андроид = "http://schemas.android.com/apk/res/android"
андроид: идентификатор = "@ + идентификатор/namehere"
... >

Тогда в вашем коде вы будете использовать findViewById, чтобы получить ссылку на него.

LinearLayout ll = (LinearLayout) findViewById (R.id.namehere);

ll.addView (...);

+0

Вы правы в том, что вы можете получить вещи по id, но LinearLayout дает ошибку, когда я пытаюсь дать ему идентификатор. Это был мой первый подход. –

+0

Извините, я думал о FrameLayout. Например, см. Http://www.kellbot.com/2009/06/android-hello-circle/. – Slapout

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