Java 回收视图android

Java 回收视图android,java,android,Java,Android,当我打开应用程序时,它不工作为什么 为什么这个RecyclerView不起作用,但我不知道为什么 package com.example.dell.iwantto; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.TextView; import java.util.Arr

当我打开应用程序时,它不工作为什么

为什么这个
RecyclerView
不起作用,但我不知道为什么

package com.example.dell.iwantto;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
public class NameAdapter extends RecyclerView.Adapter<NameAdapter.NameViewHolder> {
    private ArrayList<String> mData;
    public static class NameViewHolder extends RecyclerView.ViewHolder {
        public TextView mNameTextView;
        public NameViewHolder(TextView v) {
            super(v);
            mNameTextView = v;
        }
    }
    public NameAdapter(ArrayList<String> mData) {
        this.mData = mData;
    }

    @Override
    public NameAdapter.NameViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        TextView v = (TextView) LayoutInflater.from(parent.getContext())
                .inflate(R.layout.layout,parent, false).findViewById(R.id.xs);
        NameViewHolder vh = new NameViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(NameViewHolder holder, int position) {
        holder.mNameTextView.setText(mData.get(position));
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }
}
package com.example.dell.iwantto;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.ViewGroup;
导入android.widget.TextView;
导入java.util.ArrayList;
公共类名称适配器扩展了RecyclerView.Adapter{
私有ArrayList mData;
公共静态类NameViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图mNameTextView;
公共名称视图持有者(TextView v){
超级(五);
mNameTextView=v;
}
}
公共名称适配器(ArrayList mData){
this.mData=mData;
}
@凌驾
public NameAdapter.NameViewHolder onCreateViewHolder(视图组父级,int-viewType){
TextView v=(TextView)LayoutInflater.from(parent.getContext())
.充气(R.layout.layout,parent,false).findViewById(R.id.xs);
NameViewHolder vh=新的NameViewHolder(v);
返回vh;
}
@凌驾
public void onBindViewHolder(NameViewHolder,int位置){
holder.mNameTextView.setText(mData.get(position));
}
@凌驾
public int getItemCount(){
返回mData.size();
}
}

我怎样才能解决它?错误是什么?当我试图在手机中打开应用程序时,为什么应用程序会停止?

您的
回收视图
无法工作,因为您错误地将子视图作为父视图,这是以下代码中的
视图持有者
所需要的:

@Override
public NameAdapter.NameViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    // This is incorrect because the method need a parent view not a child view
    TextView v = (TextView) LayoutInflater.from(parent.getContext())
            .inflate(R.layout.layout,parent, false).findViewById(R.id.xs);
    NameViewHolder vh = new NameViewHolder(v);
    return vh;
}
应该是这样的:

@Override
public NameAdapter.NameViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Context context = parent.getContext();
    LayoutInflater inflater = LayoutInflater.from(context);

    // inflate your layout.
    View view = inflater.inflate(R.layout.layout, parent, false);

    NameViewHolder viewHolder = new NameViewHolder(view);
    return viewHolder;
}