编程语言
首页 > 编程语言> > Android TV应用程序 – 无法使用远程选择列表项

Android TV应用程序 – 无法使用远程选择列表项

作者:互联网

目前我正在开发Android TV应用.

我使用过Android Lean支持库.

我添加了一个ListView,但我无法从listView中选择任何带有真实设备遥控器的项目.但是,我可以借助鼠标在我的Android虚拟设备上选择listView项.

这是我的listView示例代码:

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

这里,arrayViewOrders是我的ArrayList,它包含从JSON webservice收到的数据.

这是我的JSON响应:

{
   "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"
      }
   ]
}

我还在AndroidManifest.xml文件中添加了以下功能:

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

所以,我的问题是:如何在远程帮助下在真实设备中选择任何东西(即列表项,按钮)?

解决方法:

最后,经过大量研发后,我得到了解决方案.

这是我使用Android TV遥控器进行定向导航的解决方案.

首先,你必须保持任何一个项目的焦点(即Button,TextView等),如下所示.

而且,你必须应用它的nextFocusDown,nextFocusLeft,nextFocusRight& nextFocusUp属性,以便在您单击TV远程导航按钮时触发其相关事件.

<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>

有关更多信息,请参阅:

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

标签:android,avd,android-tv,leanback
来源: https://codeday.me/bug/20190519/1135939.html