2016-01-11 58 views
5

Aktualnie pracuję nad aplikacją Android TV.Aplikacja Android TV - nie można wybrać elementu listy ze zdalnym

Korzystałem z biblioteki wsparcia dla systemu Android Lean back.

Dodałem jeden ListView, ale nie mogę wybrać żadnej pozycji z listy ViewView na prawdziwym urządzeniu. Mogę jednak wybrać element listy na moim wirtualnym urządzeniu Android za pomocą myszy.

Oto mój przykładowy kod z ListView:

customViewOrders = new CustomViewOrders(getActivity().getBaseContext(), arrayViewOrders); 
lstViewOrder.setAdapter(customViewOrders); 

Tutaj arrayViewOrders jest mój ArrayList, która zawiera dane otrzymane z JSON usługa.

Oto mój JSON odpowiedzi:

{ 
    "order":[ 
     { 
     "0":"13829CF", 
     "gen_id":"13829CF", 
     "1":"17534CF", 
     "2":"Complete", 
     "ord_status":"Complete", 
     "3":"Online Preview", 
     "sta_name":"Online Preview", 
     "4":"2015-10-27 00:00:00", 
     "image":"cinereel", 
     "placed_from":"web" 
     } 
    ] 
} 

Dodałem także następujące funkcje w pliku AndroidManifest.xml:

<uses-feature 
    android:name="android.hardware.touchscreen" 
    android:required="false" /> 
<uses-feature 
    android:name="android.hardware.faketouch" 
    android:required="true" /> 

Więc moje pytanie brzmi: w jaki sposób wybrać nic (tj element listy, przycisk) w rzeczywistym urządzeniu za pomocą pilota?

+0

Proszę dodać odpowiedź JSON, którą otrzymujesz .. – Kamal

+0

@Kamal - Dodałem odpowiedź JSON. –

Odpowiedz

4

Wreszcie mam roztworu po partii R & D.

Oto moje rozwiązanie dla kierunkowej nawigacji przy użyciu Android TV pilota.

Po pierwsze, musisz skupić się na jednym z elementów (tj. Button, TextView itd.), Jak poniżej.

A także, trzeba stosować swoje nextFocusDown, nextFocusLeft, nextFocusRight & nextFocusUp właściwości, tak, że będzie ogień jego istotne zdarzenia po kliknięciu TV Remote przycisków nawigacyjnych.

<Button 
    android:id="@+id/btnSignout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvUserName" 
    android:layout_marginTop="2dp" 
    android:layout_toLeftOf="@+id/ivUser" 
    android:width="100dp" 
    android:nextFocusRight="@+id/ivUser" <!-- On click of right arrow button, focus will be move to ivUser id --> 
    android:nextFocusUp="@+id/tvUserName" <!-- On click of up arrow button, focus will be move to tvUserName id --> 
    android:text="@string/signout" 
    android:textAppearance="?android:textAppearanceMedium"> 

    <requestFocus></requestFocus> 

</Button> 

Aby uzyskać więcej informacji na ten temat można znaleźć na stronie:

  1. Android User Interface Design: The Basics of Control Focus Order,
  2. Creating TV Navigation.