RecyclervView実装してみた。

お久しぶりです。最近、以前に作ったアプリを改良してListViewからRecyclerViewに変えようとしていました。

しかし、、なかなかうまくいかなかった。

 

RunしてもNull Exception Java.util.listやら、 Interfaceのクリック機能がおかしいないなど、、

 

 しかし!!!!

 

ようやく思った通りにできました。ほんとに時間かかった。

 

一応、初コード載せに挑戦してみます。

requestData.enqueue(new Callback<ShopData>() {
            @Override
            public void onResponse(Call<ShopData> call, Response<ShopData> response) {
                List<Shop> shopList = response.body().results.getShop();
                adapter = new CustomAdapter(shopList, R.layout.activity_custom_items, getActivity());
                mRecyclerView.setAdapter(adapter);




            }

            @Override
            public void onFailure(Call<ShopData> call, Throwable t) {
                Log.e("Restaurants","Error" + t.getMessage());
                Toast.makeText(getActivity().getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();

            }

RecyclerView

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {


    private List<Shop> resultData;
    private Context mContext;
    private int rowLayout;
    private OnItemClickListener mClickListener;




    public void setClickListener(OnItemClickListener clickListener) {
        this.mClickListener = clickListener;
    }

    public CustomAdapter(List<Shop> resultData, int rowLayout, Context context) {
        this.resultData = resultData;
        this.rowLayout = rowLayout;
        this.mContext = context;

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(rowLayout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder viewholder, final int position) {
        viewholder.item_text.setText(resultData.get(position).getName());
        Picasso.with(mContext).load(resultData.get(position).getPhoto().getMobile().getS())
                .into(viewholder.item_pic);





    }

    @Override
    public int getItemCount() {
        return resultData.size();
    }




    public class ViewHolder extends RecyclerView.ViewHolder{
        private TextView item_text;
        private ImageView item_pic;


        public ViewHolder(View itemView) {
            super(itemView);
            item_text = (TextView)itemView.findViewById(R.id.item_text);
            item_pic = (ImageView)itemView.findViewById(R.id.item_pic);


        }



    }



}

こんな感じです。
使ってみた感想は、ListView覚えるよりこっち覚えたほうがいいかもねと思いました。
あとはクリック処理がうまく機能してくれるように実装頑張ります。

サンプルアプリは完成仕掛けとして、web系触るべきか、kotolinで同じようなもの作るか
考え中です、、、。

サービス作ってみたいんだけど、大学卒業して独学でプログラミング勉強して
もう3月だしできればエンジニアとして就職活動したいけど、このスキルでいけるのか、、

とりあえず頑張ります。