Работая с демонстрацией Glass Scroll Cards, я хочу иметь возможность изменять текст на карте после касания карты. Мне повезло сделать это с помощью card.setText("бла-бла"), но по той или иной причине настройка текста не работает, пока я не прокручиваю карту, а затем возвращаюсь к карте. Вероятно, я чего-то не понимаю в отношениях между CardScrollAdapter, методом toView и setContentView. Может ли кто-нибудь дать совет (или, возможно, небольшой образец кода)? Спасибо.
Как изменить текст на существующей карточке в Glass GDK?
Ответы (2)
Вы должны уведомить свой адаптер, когда вы изменяете информацию на карте, чтобы она обновилась. Например:
adapter.notifyDataSetChanged()
person
ErstwhileIII
schedule
06.04.2014
В вашей деятельности дайте вашему CardScrollView OnClickListener следующим образом:
mCardScrollView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
mCardList.get(arg2).setText("changed");
//must have this next line to see change reflected in glass
mCardScrollAdapter.notifyDataSetChanged();
}
});
Обратите внимание, что необходимо сообщить адаптеру, что ваши данные обновлены (см. комментарий к коду).
Если вам нужно больше кода, дайте мне знать, или если вы можете предоставить свой код, я могу указать, что не так. Я определенно вижу, что текст моей карты меняется при нажатии.
Заключительная мысль: меня немного сбивает с толку тот факт, что нажатия карты в этой ситуации недоступны для onKeyDown, установленного для KEYCODE_DPAD_CENTER. CardScrollView в этом смысле нужно рассматривать как ListView в Android, как показано в моем примере кода.
person
Mark Scheel
schedule
09.04.2014