Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android回收视图崩溃_Android_Android Recyclerview - Fatal编程技术网

android回收视图崩溃

android回收视图崩溃,android,android-recyclerview,Android,Android Recyclerview,我正在努力学习。我正在看这个视频 我的adapter.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; impo

我正在努力学习。我正在看这个视频

我的adapter.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);
        }
    }



}
package com.example.rfr.listcards;
导入android.content.Context;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入java.util.List;
公共类适配器扩展了RecyclerView.Adapter{
语境;
列出mData;
公共适配器(上下文mContext、列表mData){
this.mContext=mContext;
this.mData=mData;
}
@凌驾
公共myViewHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutFlater充气机=LayoutFlater.from(mContext);
视图v=充气机。充气(R.layout.card_项,父项,假);
返回新的myViewHolder(v);
}
@凌驾
公共无效onBindViewHolder(myViewHolder,int位置){
holder.background\u img.setImageResource(mData.get(position.getBackground());
holder.profile_photo.setImageResource(mData.get(position.getProfilePhoto());
holder.tv_title.setText(mData.get(position.getProfileName());
holder.tv\n followers.setText(mData.get(position.getNbFollowers());
}
@凌驾
public int getItemCount(){
返回mData.size();
}
公共类myViewHolder扩展了RecyclerView.ViewHolder{
图像视图剖面图,背景图;
text查看电视标题、电视关注者;
公共myViewHolder(查看项目视图){
超级(项目视图);
profile\u photo=itemView.findviewbyd(R.id.profile\u img);
background\u img=itemView.findviewbyd(R.id.card\u background);
tv\u title=itemView.findviewbyd(R.id.card\u title);
tv\u nbFollowers=itemView.findviewbyd(R.id.card\u nb\u follower);
}
}
}
MainActivity.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));


    }
}
package com.example.rfr.listcards;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.Window;
导入android.view.WindowManager;
导入java.util.ArrayList;
导入java.util.List;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将状态栏背景设置为transparetne
windoww=getWindow();
w、 setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
//使用适配器安装recyclerView
RecyclerView RecyclerView=findViewById(R.id.rv_列表);
List mlist=new ArrayList();
列表添加(新项目(R.drawable.japon1,“城市”,R.drawable.a1,2500));
列表添加(新项目(R.drawable.b2,“城市”,R.drawable.a2,2500));
列表添加(新项目(R.drawable.b3,“城市”,R.drawable.a3,2500);
列表添加(新项目(R.drawable.b4,“城市”,R.drawable.a4,2500);
列表添加(新项目(R.dravable.b5,“城市”,R.dravable.a2500));
列表添加(新项目(R.drawable.b6,“城市”,R.drawable.a1,2500));
列表添加(新项目(R.drawable.b7,“城市”,R.drawable.a1,2500));
列表添加(新项目(R.drawable.b7,“城市”,R.drawable.a1,2500));
列表添加(新项目(R.drawable.b7,“城市”,R.drawable.a1,2500));
适配器=新适配器(此,mlist);
recyclerView.setAdapter(适配器);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
}
}
如果尝试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)
是GetText和setText导致了问题


感谢迈克的帮助

查看以确定撞车原因。嗨,迈克M。在你的帮助下,我找到了问题。堆栈跟踪可能看起来很吓人,但它很有帮助:你是否解决了它?现在我只是对lines holder.tv_title.setText(mData.get(position.getProfileName())进行了注释;holder.tv\n followers.setText(mData.get(position.getNbFollowers());现在是凌晨2点睡觉的时间:)好吧,兄弟,当你醒来的时候,我确信getNbFollowers会返回一个整数。尝试使用
holder.tv\nbFollowers.setText(String.valueOf(mData.get(position.getNbFollowers())嗨,穆斯塔夫,你说得对!听到那个兄弟的话我们会很高兴的