Add callbacks for actions in details.

Change-Id: I5d56e65c45c686fa1b4a686d67f27fb316f9ddf9
This commit is contained in:
Tim Kilbourn
2014-04-04 16:22:31 -07:00
parent 7f94b8d6e6
commit 29830054ff
2 changed files with 24 additions and 3 deletions

View File

@@ -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);
}
}
} }

View File

@@ -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);