Android TV App - 无法使用遥控器选择列表项

Posted

技术标签:

【中文标题】Android TV App - 无法使用遥控器选择列表项【英文标题】:Android TV App - unable to select list item with remote 【发布时间】:2016-04-15 17:11:29 【问题描述】:

目前我正在开发 android TV 应用程序。

我使用过 Android Lean 支持库。

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

这是我的 listView 示例代码:

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

这里,arrayViewOrders 是我的 ArrayList,其中包含从 JSON 网络服务接收到的数据。

这是我的 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" />

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

【问题讨论】:

请添加您收到的 JSON 响应.. @Kamal - 我添加了 JSON 响应。 【参考方案1】:

经过大量的研发,我终于得到了解决方案。

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

首先,您必须关注以下任何一项(即ButtonTextView 等)。

此外,您还必须应用其nextFocusDownnextFocusLeftnextFocusRightnextFocusUp 属性,以便在您单击电视遥控器导航按钮时触发其相关事件。

<Button
    android:id="@+id/btnSignout"
    android:layout_
    android:layout_
    android:layout_below="@+id/tvUserName"
    android:layout_marginTop="2dp"
    android:layout_toLeftOf="@+id/ivUser"
    android:
    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 TV App - 无法使用遥控器选择列表项的主要内容,如果未能解决你的问题,请参考以下文章

Android TV开发焦点移动源码分析

Android TV-电视开发知识点速览

Android Studio TV 遥控器按钮

Android 遥控器如何与 Google TV 配合使用

Jetpack Compose:在 Android TV 中使用遥控器触发 onClick 事件

安卓TV开发 Android模拟事件 遥控器变身成鼠标来操作TV