2013-07-27 10 views
5

Я новичок в разработке Android.Android: динамическое изменение названия активности в тексте выбранного списка Элемент

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

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

Я хочу, чтобы заголовок для экрана сведений отображал тему, выбранную пользователем на первой странице, но не смог решить проблему после работы в течение почти недели.

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

Примечание: я бы разместил рисунок того, что я хочу сделать, но я новичок здесь и еще не имею репутации 10.

Спасибо, SonCoder

ответ

5

Не совсем уверен, что вы хотите, но в любом случае. -Вы имеете список. Каждое представление (данные) в списке должно быть представлено моделью. (Так называемый отдельный класс, содержащий определенную информацию, которую вы хотите, чтобы представлять для каждого ListItem.

-Write адаптер пользовательский список (простираться от базового адаптера). http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ В методе GetView этого класса вы загружаете поле Строка от модели, которую вы хотите в текстовом виде.

-Необходимо использовать шаблон зрителя в вышеприведенном адаптере. Я заметил, что пример не использует его. Это ускоряет прокрутку списка, потому что гораздо меньше вызовов findViewById .

В списке действий создана функция просмотра onClick.Это должно создать намерение (для запуска активности) или транзакцию фрагмента (для фрагментов). Отправьте экземпляр всей модели (получите от

parent.getAdapter().getItem(position); 

метод on click) в действие детали.

Если вы хотите установить заголовок textview, просто получите текстовое представление и установите его из модели. Это будет то же самое, что вы надули в методе getView адаптера.

-если вы хотите установить titile в наборе ActionBar:

this.getActionBar().setTitle(title) 
+0

Как и в предыдущем ответе, вам придется исследовать этот подход и как его реализовать. Опять же, я очень новичок в Android ... и программировании в целом. Цените предложение. – dmiannay

+0

Спасибо. Я просто не видел этого пару недель назад, когда пытался решить проблему. Эта простая строка кода «this.getActionBar(). SetTitle (title)» сделала трюк, и он отлично работает! Благодаря! – dmiannay

1

Это просто. Просто отправьте дополнительные данные в intent, который запустит activity, а затем в действии onCreate прочитайте данные, а затем используйте способ setTitle(myString).

setTitle(String title) можно вызвать из любого места, используя, кстати, активность.

Итак, ваш в вашем listadapter, то вы установили listener на ваш взгляд? Простой onClickListener в целом «корневой» вид в порядке.

В слушателю вы говорите что-то в пути этого:

Intent intent = new Intent(myActivity, MySubActivity.class); 
intent.putExtra(key, titleName); 
myActivity.startActivity(intent); 

Обратите внимание, что ссылка деятельность должна быть установлена ​​в конструкторе адаптера и что «ключ» Строка то, что вы получите от вашего strings.xml. Не дублируйте их в коде, так как если вы измените его и забудьте изменить другие, вы можете получить некоторые новые NPE.

Продолжить в вашей MySubActivity в onCreate()

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    String key = getString(R.string.my_title_key); 
    String title = intent.getString(key); 
    setTitle(title); 
} 

ПРИМЕЧАНИЕ: Я не уверен, что все имена методов являются правильными и такие, но что-то вроде этого.

+0

Предложение выглядит очень просто, но я должен буду исследовать, как пройти «выбранную тему» ​​строку в умыслом. Ты дал мне возможность сосредоточиться. – dmiannay

+0

Проверьте правильность редактирования за 1 минуту. –

+0

Спасибо @ Джохан С. Ваши советы были огромной помощью! Еще многое узнать, но любить путешествие. – dmiannay

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