Android TV Leanback (七)(详情视图)
来源:互联网 发布:丅vb晚上7点播出剧集 编辑:程序博客网 时间:2024/05/18 03:47
创建一个详情presenter
Leanback library提供了视频浏览框架,你可以使用presenter控制数据在屏幕上的显示,包括视频详情。这个框架为止提供了AbstractDetailsDescriptionPresenter,你需要实现onBindDescription(),将数据与视图绑定。如下:
public class DetailsDescriptionPresenterextends AbstractDetailsDescriptionPresenter { @Override protected void onBindDescription(ViewHolder viewHolder, Object itemData) { MyMediaItemDetails details = (MyMediaItemDetails) itemData; // itemData包含视频的详细信息 //需要显示视频的详细信息 // viewHolder.getTitle().setText(details.getShortTitle()); // 使用静态数据测试: viewHolder.getTitle().setText(itemData.toString()); viewHolder.getSubtitle().setText("2014 Drama TV-14"); viewHolder.getBody().setText("Lorem ipsum dolor sit amet, consectetur " + "adipisicing elit, sed do eiusmod tempor incididunt ut labore " + " et dolore magna aliqua. Ut enim ad minim veniam, quis " + "nostrud exercitation ullamco laboris nisi ut aliquip ex ea " + "commodo consequat."); }}
继承DetailsFragment
使用DetailsFragment来显示视频的详细信息,它提供额外的内容,比如:预览图片,关于视频的操作项(购买、播放、关注等)。您还可以提供额外的内容,如相关视频或演员的列表。如下:
public class MediaItemDetailsFragment extends DetailsFragment { private static final String TAG = "MediaItemDetailsFragment"; private ArrayObjectAdapter mRowsAdapter; @Override public void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate"); super.onCreate(savedInstanceState); buildDetails(); } private void buildDetails() { ClassPresenterSelector selector = new ClassPresenterSelector(); // 将视频详细信息的presenter附加到rowPresenter上 FullWidthDetailsOverviewRowPresenter rowPresenter = new FullWidthDetailsOverviewRowPresenter( new DetailsDescriptionPresenter()); selector.addClassPresenter(DetailsOverviewRow.class, rowPresenter); selector.addClassPresenter(ListRow.class, new ListRowPresenter()); mRowsAdapter = new ArrayObjectAdapter(selector); Resources res = getActivity().getResources(); DetailsOverviewRow detailsOverview = new DetailsOverviewRow( "Media Item Details"); // 给详情视图添加图片和操作 detailsOverview.setImageDrawable(res.getDrawable(R.drawable.jelly_beans)); detailsOverview.addAction(new Action(1, "Buy $9.99")); detailsOverview.addAction(new Action(2, "Rent $2.99")); mRowsAdapter.add(detailsOverview); // 添加相关项 ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter( new StringPresenter()); listRowAdapter.add("Media Item 1"); listRowAdapter.add("Media Item 2"); listRowAdapter.add("Media Item 3"); HeaderItem header = new HeaderItem(0, "Related Items", null); mRowsAdapter.add(new ListRow(header, listRowAdapter)); setAdapter(mRowsAdapter); }}
创建详情Activity
创建一个activity包含DetailsFragment来显示详情。
创建布局:
<fragment xmlns:android="http://schemas.android.com/apk/res/android" android:name="com.example.android.mediabrowser.MediaItemDetailsFragment" android:id="@+id/details_fragment" android:layout_width="match_parent" android:layout_height="match_parent"/>
创建Activity:
public class DetailsActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.details); }}
注册:
<application> ... <activity android:name=".DetailsActivity" android:exported="true" android:theme="@style/Theme.Leanback"/></application>
定义一个Listener监听每项的点击
public class BrowseMediaActivity extends Activity { ... @Override protected void onCreate(Bundle savedInstanceState) { ... // create the media item rows buildRowsAdapter(); // add a listener for selected items mBrowseFragment.OnItemViewClickedListener( new OnItemViewClickedListener() { @Override public void onItemClicked(Object item, Row row) { System.out.println("Media Item clicked: " + item.toString()); Intent intent = new Intent(BrowseMediaActivity.this, DetailsActivity.class); // pass the item information intent.getExtras().putLong("id", item.getId()); startActivity(intent); } }); }}
阅读全文
0 0
- Android TV Leanback (七)(详情视图)
- Android TV Leanback (六)(卡片视图)
- Android TV Leanback (五)(使用leanback创建UI)
- Android TV Leanback (八)(引导步骤)
- Android TV 视图体系分析
- Android TV开发总结(七)构建一个TV app中的剧集列表控件
- Apple TV详情大揭秘
- Aandroid TV 基于Leanback支持最新MD设计的TV开发框架
- 微信小程序 详情页(七)
- Android TV Input Framework(Android TV 一)
- android自定义视图之类似淘宝商品详情
- Android TV
- Android TV
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
- Android TV-Handling TV Hardware
- Android TV-Creating TV Navigation
- android TV-Recommending TV Content,
- android tv-Building TV Games
- Android开发之WebView的使用(1)
- 三步搭建直播系统源码
- Android开发之WebView的使用(2)
- struts2实现上传文件
- Android Studio中Instant Run
- Android TV Leanback (七)(详情视图)
- python爬虫框架scarpy之AttributeError: module 'scrapy' has no attribute 'spider'
- oracle 行转列 及 pivot函数使用问题
- Android开发之PreferenceActivity的使用
- iOS-Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target "xxx" and build conf
- Android开发之WIFI与网络连接处理
- Android开发之蓝牙(Bluetooth)
- Android开发之代码混淆
- 应用抓包之tcpdump命令抓包