Demonstrate OnItemClicked/Selected listeners.

Also fixes broken VerticalGridFragment.
And cleanup.

b/16354712

Change-Id: I348ab42230d88bac8192b5421e76a58b28ca6616
This commit is contained in:
Craig Stout
2014-08-20 18:23:49 -07:00
parent f1c2891a00
commit 311be185b2
5 changed files with 68 additions and 20 deletions

View File

@@ -19,7 +19,7 @@
android:shape="rectangle"> android:shape="rectangle">
<gradient <gradient
android:startColor="#FFFF0000" android:startColor="#FFFF0000"
android:endColor="#80FF00FF" android:endColor="#FFFF00FF"
android:angle="45" /> android:angle="45" />
<padding <padding
android:left="7dp" android:left="7dp"

View File

@@ -22,6 +22,7 @@ import android.support.v17.leanback.widget.ImageCardView;
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.OnItemViewClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
@@ -54,6 +55,13 @@ public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragm
setupRows(); setupRows();
setOnItemViewClickedListener(new ItemViewClickedListener()); setOnItemViewClickedListener(new ItemViewClickedListener());
setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemSelected: " + item + " row " + row);
}
});
} }
private void setupRows() { private void setupRows() {

View File

@@ -26,6 +26,10 @@ 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.support.v17.leanback.widget.OnActionClickedListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter; import android.support.v17.leanback.widget.RowPresenter;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -36,7 +40,7 @@ import android.widget.Toast;
import java.util.ArrayList; import java.util.ArrayList;
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.DetailsFragment";
private static final String ITEM = "item"; private static final String ITEM = "item";
private static final int NUM_ROWS = 3; private static final int NUM_ROWS = 3;
@@ -58,8 +62,7 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
}); });
ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter); 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);
@@ -70,6 +73,21 @@ public class DetailsFragment extends android.support.v17.leanback.app.DetailsFra
} }
dorPresenter.setSharedElementEnterTransition(getActivity(), dorPresenter.setSharedElementEnterTransition(getActivity(),
DetailsActivity.SHARED_ELEMENT_NAME); DetailsActivity.SHARED_ELEMENT_NAME);
setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemClicked: " + item + " row " + row);
}
});
setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemSelected: " + item + " row " + row);
}
});
} }
@Override @Override

View File

@@ -35,9 +35,14 @@ import android.support.v17.leanback.widget.PlaybackControlsRow.SkipPreviousActio
import android.support.v17.leanback.widget.PlaybackControlsRowPresenter; import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
import android.support.v17.leanback.widget.HeaderItem; import android.support.v17.leanback.widget.HeaderItem;
import android.support.v17.leanback.widget.VerticalGridView; import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnActionClickedListener; import android.support.v17.leanback.widget.OnActionClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.ControlButtonPresenterSelector; import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
@@ -79,6 +84,21 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl
setFadingEnabled(false); setFadingEnabled(false);
setupRows(); setupRows();
setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemSelected: " + item + " row " + row);
}
});
setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemClicked: " + item + " row " + row);
}
});
} }
@@ -258,6 +278,12 @@ public class PlaybackOverlayFragment extends android.support.v17.leanback.app.Pl
} }
} }
@Override
public void onStop() {
stopProgressAutomation();
super.onStop();
}
static class MediaItem { static class MediaItem {
String title; String title;
String subtitle; String subtitle;

View File

@@ -14,23 +14,20 @@
package com.example.android.leanback; package com.example.android.leanback;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
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.Presenter; import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.VerticalGridPresenter; import android.support.v17.leanback.widget.VerticalGridPresenter;
import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.OnItemClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemSelectedListener; import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.util.Log; import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import java.util.Random;
public class VerticalGridFragment extends android.support.v17.leanback.app.VerticalGridFragment { public class VerticalGridFragment extends android.support.v17.leanback.app.VerticalGridFragment {
private static final String TAG = "leanback.VerticalGridFragment"; private static final String TAG = "leanback.VerticalGridFragment";
@@ -39,15 +36,12 @@ public class VerticalGridFragment extends android.support.v17.leanback.app.Verti
private static final int HEIGHT = 200; private static final int HEIGHT = 200;
private ArrayObjectAdapter mAdapter; private ArrayObjectAdapter mAdapter;
private Random mRandom;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate"); Log.i(TAG, "onCreate");
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mRandom = new Random();
setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title)); setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.ic_title));
setTitle("Leanback Vertical Grid Demo"); setTitle("Leanback Vertical Grid Demo");
@@ -59,23 +53,25 @@ public class VerticalGridFragment extends android.support.v17.leanback.app.Verti
gridPresenter.setNumberOfColumns(NUM_COLUMNS); gridPresenter.setNumberOfColumns(NUM_COLUMNS);
setGridPresenter(gridPresenter); setGridPresenter(gridPresenter);
mAdapter = new ArrayObjectAdapter(new CardPresenter()); mAdapter = new ArrayObjectAdapter(new StringPresenter());
for (int i = 0; i < NUM_ITEMS; i++) { for (int i = 0; i < NUM_ITEMS; i++) {
mAdapter.add(Integer.toString(i)); mAdapter.add(Integer.toString(i));
} }
setAdapter(mAdapter); setAdapter(mAdapter);
setOnItemSelectedListener(new OnItemSelectedListener() { setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
@Override @Override
public void onItemSelected(Object item, Row row) { public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
Log.i(TAG, "item selected: " + item); RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemSelected: " + item + " row " + row);
} }
}); });
setOnItemClickedListener(new OnItemClickedListener() { setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override @Override
public void onItemClicked(Object item, Row row) { public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
Log.i(TAG, "item clicked: " + item); RowPresenter.ViewHolder rowViewHolder, Row row) {
Log.i(TAG, "onItemClicked: " + item + " row " + row);
} }
}); });
setOnSearchClickedListener(new View.OnClickListener() { setOnSearchClickedListener(new View.OnClickListener() {