Add callbacks for actions in details.
Change-Id: I5d56e65c45c686fa1b4a686d67f27fb316f9ddf9
This commit is contained in:
@@ -13,11 +13,14 @@
|
|||||||
*/
|
*/
|
||||||
package com.example.android.leanback;
|
package com.example.android.leanback;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
||||||
import android.support.v17.leanback.widget.HeaderItem;
|
import android.support.v17.leanback.widget.HeaderItem;
|
||||||
import android.support.v17.leanback.widget.ListRow;
|
import android.support.v17.leanback.widget.ListRow;
|
||||||
import android.support.v17.leanback.widget.ListRowPresenter;
|
import android.support.v17.leanback.widget.ListRowPresenter;
|
||||||
|
import android.support.v17.leanback.widget.OnItemClickedListener;
|
||||||
|
import android.support.v17.leanback.widget.Row;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
|
public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
|
||||||
@@ -38,12 +41,12 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
|||||||
setBrowseParams(p);
|
setBrowseParams(p);
|
||||||
|
|
||||||
setupRows();
|
setupRows();
|
||||||
|
setOnItemClickedListener(new ItemClickedListener());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupRows() {
|
private void setupRows() {
|
||||||
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
|
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < NUM_ROWS; ++i) {
|
for (int i = 0; i < NUM_ROWS; ++i) {
|
||||||
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
|
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new StringPresenter());
|
||||||
listRowAdapter.add("Hello world");
|
listRowAdapter.add("Hello world");
|
||||||
@@ -54,4 +57,13 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
|
|||||||
|
|
||||||
setAdapter(mRowsAdapter);
|
setAdapter(mRowsAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final class ItemClickedListener implements OnItemClickedListener {
|
||||||
|
public void onItemClicked(Object item, Row row) {
|
||||||
|
// TODO: use a fragment transaction instead of launching a new
|
||||||
|
// activity
|
||||||
|
Intent intent = new Intent(getActivity(), DetailsActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,9 @@ import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
|
|||||||
import android.support.v17.leanback.widget.HeaderItem;
|
import android.support.v17.leanback.widget.HeaderItem;
|
||||||
import android.support.v17.leanback.widget.ListRow;
|
import android.support.v17.leanback.widget.ListRow;
|
||||||
import android.support.v17.leanback.widget.ListRowPresenter;
|
import android.support.v17.leanback.widget.ListRowPresenter;
|
||||||
|
import android.support.v17.leanback.widget.OnActionClickedListener;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
|
public class DetailsFragment extends android.support.v17.leanback.app.DetailsFragment {
|
||||||
private static final String TAG = "leanback.BrowseFragment";
|
private static final String TAG = "leanback.BrowseFragment";
|
||||||
@@ -41,8 +43,15 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
|
|||||||
|
|
||||||
private void setupRows() {
|
private void setupRows() {
|
||||||
ClassPresenterSelector ps = new ClassPresenterSelector();
|
ClassPresenterSelector ps = new ClassPresenterSelector();
|
||||||
ps.addClassPresenter(DetailsOverviewRow.class,
|
DetailsOverviewRowPresenter dorPresenter =
|
||||||
new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter()));
|
new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
|
||||||
|
dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
|
||||||
|
public void onActionClicked(Action action) {
|
||||||
|
Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
|
||||||
ps.addClassPresenter(ListRow.class,
|
ps.addClassPresenter(ListRow.class,
|
||||||
new ListRowPresenter());
|
new ListRowPresenter());
|
||||||
mRowsAdapter = new ArrayObjectAdapter(ps);
|
mRowsAdapter = new ArrayObjectAdapter(ps);
|
||||||
|
|||||||
Reference in New Issue
Block a user