1
私はたくさん試しましたが、この問題を解決できませんでした。私はグリッドにいくつかの写真を持っており、私はそれをdパッドを使ってナビゲートしたいと思っています。この目的のために私はsetOnKeyListernerを実装していますが、このエラーが出ます。 アダプタSetOnKeyListenerがgridviewと連携していません
public class GridView_Recycler_Adapter extends RecyclerView.Adapter<GridView_Holder> {
private ArrayList<Data_Model> arrayList;
private Context context;
public GridView_Recycler_Adapter(Context context,
ArrayList<Data_Model> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@Override
public int getItemCount() {
return (null != arrayList ? arrayList.size() : 0);
}
@Override
public void onBindViewHolder(GridView_Holder holder, int position) {
// Now in this method the items will set and click listener will occur
final Data_Model model = arrayList.get(position);
GridView_Holder gridHolder = (GridView_Holder) holder;// Holder
Bitmap image = BitmapFactory.decodeResource(context.getResources(),
model.getImage());// Converting drawable into bitmap
// setting data over views
gridHolder.grid_title.setText(model.getTitle());
gridHolder.grid_location.setText(model.getLocation());
gridHolder.grid_date.setText(model.getYear());
gridHolder.grid_imageView.setImageBitmap(image);
gridHolder.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_RIGHT:
Log.e("right button", "yes");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
Log.e("left button", "yes");
break;
case KeyEvent.KEYCODE_DPAD_UP:
Log.e("up", "yes");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
Log.e("down button", "yes");
break;
default:
break;
}
return false;
}
});
}
@Override
public GridView_Holder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
// This method will inflate the layout and return as viewholder
LayoutInflater mInflater = LayoutInflater.from(viewGroup.getContext());
ViewGroup mainGroup = (ViewGroup) mInflater.inflate(
R.layout.grid_customview, viewGroup, false);
GridView_Holder gridHolder = new GridView_Holder(mainGroup);
return gridHolder;
}
}