2014-01-15 5 views
0

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

создать несколько 3 элемента с:

ControlListItem item = new ControlListItem(); 
item.layoutReference = R.id.gallery; 
item.dataXmlLayout = R.layout.item_gallery; 
item.listItemId = position; 
item.listItemPosition = position; 


// Label data 
Bundle labelBundle = new Bundle(); 
labelBundle.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.title); 
labelBundle.putString(Control.Intents.EXTRA_TEXT, mGalleryContent.get(position).getName()); 


// Body data 
Bundle bodyBundle = new Bundle(); 
bodyBundle.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.body); 
String url = "test"; 
bodyBundle.putString(Control.Intents.EXTRA_TEXT, url); 

// Image data 
Bundle imageBundle = new Bundle(); 
imageBundle.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.imageView1); 
imageBundle.putString(Control.Intents.EXTRA_DATA_URI, mGalleryContent.get(position).getSymbol()); 
item.layoutData = new Bundle[3]; 
item.layoutData[0] = labelBundle; 
item.layoutData[1] = imageBundle; 
item.layoutData[2] = bodyBundle; 

return item; 

Теперь я нажал на 2 секунды ListItem в галерее, а затем я хочу установить организму новую строку. Я проверил с чем-то вроде этого:

public void onListItemClick(final ControlListItem listItem, final int clickType, final int itemLayoutReference) { 
Intent intent = new Intent(Control.Intents.CONTROL_SEND_TEXT_INTENT); 
intent.putExtra(Control.Intents.EXTRA_LAYOUT_REFERENCE, listItem.layoutReference); 
intent.putExtra(Control.Intents.EXTRA_TEXT, "bla bla"); 
sendToHostApp(intent); 

Ошибка и не имеет эффекта. Textview не изменяется. Я пробовал с sendText (R.id.body, «Hello»). То же самое не влияет. Я думаю, мне нужен правильный LayoutID. Но мое текстовое представление находится в созданном элементе listItem. Хм. Может кто-нибудь мне помочь?

+0

где именно находится код "textView.setText()"? это список? предположим, что это из метода onListItemClick где его адаптер? –

+0

in onListItemНажмите, где вы поместите текст в текстовое окно? –

+0

Да, он находится в onListItemClick. Существует сгенерированный listItem, а в элементе listItem это текстовое представление, которое называется телом. – christof

ответ

0

К сожалению, API позволяет обновлять весь элемент списка. Невозможно обновить отдельные представления в элементе списка.

+0

Хорошо. Я генерирую 3 listItems в событии onResume. Могу ли я изменить только один элемент списка или мне нужно воссоздать 3 списка при каждом вызове onresume? – christof

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