-3

I am trying to learn. I am following this video https://www.youtube.com/watch?v=YL1VpGBj3R0

My adapter.java is:

    package com.example.rfr.listcards;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class Adapter extends RecyclerView.Adapter<Adapter.myViewHolder> {


    Context mContext;
    List<item> mData;

    public Adapter(Context mContext, List<item> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        LayoutInflater inflater = LayoutInflater.from(mContext);
        View v = inflater.inflate(R.layout.card_item, parent, false);
        return new myViewHolder(v);
    }

    @Override
    public void onBindViewHolder(myViewHolder holder, int position) {

        holder.background_img.setImageResource(mData.get(position).getBackground());
        holder.profile_photo.setImageResource(mData.get(position).getProfilePhoto());
        holder.tv_title.setText(mData.get(position).getProfileName());
        holder.tv_nbFollowers.setText(mData.get(position).getNbFollowers());


    }

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

    public class myViewHolder extends RecyclerView.ViewHolder {


        ImageView profile_photo, background_img;
        TextView tv_title, tv_nbFollowers;


        public myViewHolder(View itemView) {
            super(itemView);
            profile_photo = itemView.findViewById(R.id.profile_img);
            background_img = itemView.findViewById(R.id.card_background);
            tv_title = itemView.findViewById(R.id.card_title);
            tv_nbFollowers = itemView.findViewById(R.id.card_nb_follower);
        }
    }



}

and the MainActivity.java is:

    package com.example.rfr.listcards;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Window;
import android.view.WindowManager;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        // set the status bar background to transparetne

        Window w = getWindow();
        w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);


        // setup recyclerView with the adapter

        RecyclerView recyclerView = findViewById(R.id.rv_list);
        List<item> mlist = new ArrayList<>();
        mlist.add(new item(R.drawable.japon1,  "Cities", R.drawable.a1,  2500));
        mlist.add(new item(R.drawable.b2,  "Cities", R.drawable.a2,  2500));
        mlist.add(new item(R.drawable.b3,  "Cities", R.drawable.a3,  2500));
        mlist.add(new item(R.drawable.b4,  "Cities", R.drawable.a4,  2500));
        mlist.add(new item(R.drawable.b5,  "Cities", R.drawable.a2,  2500));
        mlist.add(new item(R.drawable.b6,  "Cities", R.drawable.a1,  2500));
        mlist.add(new item(R.drawable.b7,  "Cities", R.drawable.a1,  2500));
        mlist.add(new item(R.drawable.b7,  "Cities", R.drawable.a1,  2500));
        mlist.add(new item(R.drawable.b7,  "Cities", R.drawable.a1,  2500));


        Adapter adapter = new Adapter( this,mlist);
        recyclerView.setAdapter(adapter);
        recyclerView.setLayoutManager(new LinearLayoutManager(  this));


    }
}

If a try the debbug mode, the app only crash if I place the brake point at the very last } of the MainActivity.java

Can you spot what is wrong? My eyes already hurt just looking at this issue XD

Richardd
  • 956
  • 14
  • 27
  • 4
    Look at [the stack trace](http://stackoverflow.com/questions/23353173) to determine the cause of the crash. – Mike M. Aug 19 '18 at 00:32
  • 1
    Hi Mike M. With your help I was able to find the problem. The Stack Trace may look intimidating but it helps :D – Richardd Aug 19 '18 at 00:49

1 Answers1

0

Just to future readers. The stack trace pointed this issue:

Process: com.example.rfr.listcards, PID: 11532
android.content.res.Resources$NotFoundException: String resource ID #0x9c4
    at android.content.res.Resources.getText(Resources.java:348)
    at android.widget.TextView.setText(TextView.java:5831)
    at com.example.rfr.listcards.Adapter.onBindViewHolder(Adapter.java:38)
    at com.example.rfr.listcards.Adapter.onBindViewHolder(Adapter.java:13)
    at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
    at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
    at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)

it was the getext and setText that was causing the issue.

Thanks Mike for the help

Richardd
  • 956
  • 14
  • 27