安卓回收器视图崩溃



我正在努力学习。我正在关注这个视频 https://www.youtube.com/watch?v=YL1VpGBj3R0

我的适配器.java是:

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

}

主活动.java是:

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

}
}

如果尝试 debbug 模式,只有当我将刹车点放在 MainActivity 的最后一个 } 时,应用程序才会崩溃.java

你能发现哪里出了问题吗? 我的眼睛已经很痛了,只是看着这个问题XD

只是为了未来的读者。堆栈跟踪指出了此问题:

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)

是 getext 和 setText 导致了这个问题。

感谢迈克的帮助

最新更新