Перезагрузите данные об активности Android - PullRequest
1 голос
/ 23 мая 2010

Я пишу приложение для Android, частью которого будет опрос, включающий несколько страниц вопросов и ответов о флажках. Я создал действие, чтобы отобразить вопрос и варианты (из БД), и теперь я хочу сделать следующее: когда я нажимаю кнопку «Далее», он должен просто перезагрузить текущее действие, установив следующий вопрос из базы данных. *

(действие начинается с survey.getNextQuestion() - так что это просто случай обновления действия, чтобы оно обновлялось)

Я уверен, что это просто сделать - какие-нибудь идеи?

Спасибо

Ответы [ 2 ]

3 голосов
/ 23 мая 2010

Как правило, вы начинаете новый экземпляр действия для нового вопроса.Таким образом, если пользователь наносит ответный удар, он логично ведет себя, возвращая его обратно на страницу.

Можно обновить ту же операцию, но она сложнее.

Чтобы открытьновое действие:

Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("nextQuestion", x);
startActivity(intent);

Затем в вашем методе onCreate вы можете получить следующий вопрос из базы данных.

1 голос
/ 23 мая 2010

Я уверен, что это простая идея - есть идеи?

Это довольно просто, да. Ответ Майры , возможно, лучше, но вот подход, который обеспечит указанную вами функциональность.

Вы можете использовать findViewByID(int), чтобы определить View объекты в вашем макете, которые необходимо обновить, и назначить результат атрибуту в onCreate, чтобы вы могли получить к нему доступ позже.

* 1014 Е.Г. *

aView = (View) findViewById(R.id.aview);

Ваш survey.getNextQuestion(), очевидно, может использоваться для получения следующего вопроса.

Затем вопрос можно поместить в пользовательский интерфейс, манипулируя View s, полученными в onCreate.

1024 * Е.Г. *

aView.setText("your question/answer");

В зависимости от количества ответов вам может понадобиться программно создать / снять флажок Представления из вашего макета

1029 * Е.Г. *

ViewGroup yourViewGroup = findViewById(R.id.yourviewgroup);
View yourView = new View();
//Configure yourView how you want
yourViewGroup.addView(yourView);
youViewGroup.removeView(yourView);

Все эти функции могут содержаться в функции, которая вызывается методом onCreate и при нажатии следующей кнопки.

Не забудьте сохранить результат предыдущего вопроса перед обновлением;)

...