Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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
Java 启动RecyclerView崩溃应用程序_Java_Android - Fatal编程技术网

Java 启动RecyclerView崩溃应用程序

Java 启动RecyclerView崩溃应用程序,java,android,Java,Android,我尝试构建的两个应用程序都存在此问题。当我启动RecyclerView时,应用程序崩溃了。我已经将我的适配器代码与多个源代码进行了比较,所以我认为问题不在这里。我无法确定到底是什么错了 这只是一个非常简单的清单。100行,每行带有数字、编辑文本、复选框和按钮 checklist.java public class checkList extends AppCompatActivity { RecyclerView mRecyclerView; private RecyclerView.Adap

我尝试构建的两个应用程序都存在此问题。当我启动RecyclerView时,应用程序崩溃了。我已经将我的适配器代码与多个源代码进行了比较,所以我认为问题不在这里。我无法确定到底是什么错了

这只是一个非常简单的清单。100行,每行带有数字、编辑文本、复选框和按钮

checklist.java

public class checkList extends AppCompatActivity {

RecyclerView mRecyclerView;
private RecyclerView.Adapter myAdapter;

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

    numbers[] mNumbers = new numbers[100];

    mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);

    for (int i = 0; i<mNumbers.length; i++) {
        mNumbers[i].setInt(i + 1);
    }

    myAdapter = new myAdapter(mNumbers);

    mRecyclerView.setAdapter(myAdapter);

    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));


}
}
adapter.java

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

private numbers[] mNumbers;

public myAdapter (numbers[] numbers) {
    mNumbers = numbers;
}

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

    View v  = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_slot, parent, false);
    ViewHolder vh = new ViewHolder(v);
    return vh;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.bindNumbers(mNumbers[position]);
}

@Override
public int getItemCount() {
    return mNumbers.length;
}

public static class ViewHolder extends RecyclerView.ViewHolder {

    TextView numberText;
    EditText checklistText;
    Button deleteButton;
    CheckBox checkDisBox;

    public ViewHolder(View itemView) {
        super(itemView);
        numberText = (TextView) itemView.findViewById(R.id.number);
        checklistText = (EditText) itemView.findViewById(R.id.editText);
        deleteButton = (Button) itemView.findViewById(R.id.deleteButton);
        checkDisBox = (CheckBox) itemView.findViewById(R.id.checkBox);
    }

    public void bindNumbers(numbers numbers) {
        numberText.setText(numbers.getInt() + "");
    }
}
}
公共类myAdapter扩展了RecyclerView.Adapter{ 私人号码[]个; 公共myAdapter(编号[]编号){ mNumbers=数字; } @凌驾 public ViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.list_slot,parent,false); 视窗支架vh=新视窗支架(v); 返回vh; } @凌驾 公共无效onBindViewHolder(ViewHolder,int位置){ 持有人编号(编号[位置]); } @凌驾 public int getItemCount(){ 返回mNumbers.length; } 公共静态类ViewHolder扩展了RecyclerView.ViewHolder{ 文本视图编号文本; 编辑文本检查列表文本; 按钮删除按钮; 复选框checkDisBox; 公共视图持有者(视图项视图){ 超级(项目视图); numberText=(TextView)itemView.findViewById(R.id.number); checklistText=(EditText)itemView.findViewById(R.id.EditText); deleteButton=(Button)itemView.findViewById(R.id.deleteButton); checkDisBox=(复选框)itemView.findViewById(R.id.CheckBox); } 公共编号(编号){ numberText.setText(numbers.getInt()+); } } }
从logcat发布您的异常。问题在第27行。那是哪一行。另外,编辑您的问题以进行更新,而不是将更新作为答案发布。在清单类中:for(int i=0;i您已经对数组进行了尺寸标注,但是您需要为每个索引实例化一个
新数字()
对象。谢谢mike。我现在已经解决了它
public class myAdapter extends RecyclerView.Adapter<myAdapter.ViewHolder> {

private numbers[] mNumbers;

public myAdapter (numbers[] numbers) {
    mNumbers = numbers;
}

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

    View v  = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_slot, parent, false);
    ViewHolder vh = new ViewHolder(v);
    return vh;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.bindNumbers(mNumbers[position]);
}

@Override
public int getItemCount() {
    return mNumbers.length;
}

public static class ViewHolder extends RecyclerView.ViewHolder {

    TextView numberText;
    EditText checklistText;
    Button deleteButton;
    CheckBox checkDisBox;

    public ViewHolder(View itemView) {
        super(itemView);
        numberText = (TextView) itemView.findViewById(R.id.number);
        checklistText = (EditText) itemView.findViewById(R.id.editText);
        deleteButton = (Button) itemView.findViewById(R.id.deleteButton);
        checkDisBox = (CheckBox) itemView.findViewById(R.id.checkBox);
    }

    public void bindNumbers(numbers numbers) {
        numberText.setText(numbers.getInt() + "");
    }
}
}