Как изменить текст на существующей карточке в Glass GDK?

Работая с демонстрацией Glass Scroll Cards, я хочу иметь возможность изменять текст на карте после касания карты. Мне повезло сделать это с помощью card.setText("бла-бла"), но по той или иной причине настройка текста не работает, пока я не прокручиваю карту, а затем возвращаюсь к карте. Вероятно, я чего-то не понимаю в отношениях между CardScrollAdapter, методом toView и setContentView. Может ли кто-нибудь дать совет (или, возможно, небольшой образец кода)? Спасибо.


person user2643813    schedule 02.04.2014    source источник


Ответы (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