Android studio 为什么我能';是否在自定义对话框中创建网格布局?

Android studio 为什么我能';是否在自定义对话框中创建网格布局?,android-studio,android-layout,android-fragments,android-recyclerview,Android Studio,Android Layout,Android Fragments,Android Recyclerview,大家好,我在“Recyclerview”中创建“网格布局”时遇到问题 首先,我想使用RecyclerView在自定义对话框中创建时间段。。 所以 1/我有一个片段,在这个片段中我创建了一个按钮,我希望当按下按钮时对话框出现 2/因此,我为自定义对话框创建了一个函数(我也创建了自定义布局)…[注意,我的对话框在没有recyclerView代码的情况下工作] 3/我为时间段创建了一个recyclerView[注:recyclerView在另一个活动中工作,它会给我一个结果] 但是 4/当我想在对话

大家好,我在“Recyclerview”中创建“网格布局”时遇到问题

首先,我想使用RecyclerView在自定义对话框中创建时间段。。 所以

1/我有一个片段,在这个片段中我创建了一个按钮,我希望当按下按钮时对话框出现

2/因此,我为自定义对话框创建了一个函数(我也创建了自定义布局)…[注意,我的对话框在没有recyclerView代码的情况下工作]

3/我为时间段创建了一个recyclerView[注:recyclerView在另一个活动中工作,它会给我一个结果]

但是

4/当我想在对话框中创建RecyclerView时,它会给我一个错误

E/AndroidRuntime:致命异常:主
java.lang.NullPointerException

这是自定义对话框的函数

public void DialogTime() {

    final AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
    View mView = getLayoutInflater().inflate(R.layout.dialog_apointment_time, null);


    final Button btnOk = (Button) mView.findViewById(R.id.okb2);
    final Button btnCancle = (Button) mView.findViewById(R.id.cansleb2);


    alert.setView(mView);

    final AlertDialog alertDialog = alert.create();
    alertDialog.setCanceledOnTouchOutside(false);


 /////////////recyclerview////////

    RecyclerView dataList;
    List<String> titles;
    Adapter adapter;

    dataList = view.findViewById(R.id.dataList);

    titles = new ArrayList<>();


    int start=3;
    int end=6;


    int n=15;


    int resultOfCount=60/n;

    int resultOfHour=end-start;
    int totalResult=resultOfCount*resultOfHour;



    int m=0;  //mint akana

    //hamu au maw3idanay ka la start bo end hayaty
    for(int i=0 ;i<totalResult; i++) {

        if(m>45) {
            start ++;
            m=0;
        }



        if(m==0){
            titles.add(Integer.toString(start) +":"+"0"+Integer.toString(m) );
            System.out.println(Integer.toString(start) +":0"+Integer.toString(m));

        }
        else {
            titles.add(Integer.toString(start) +":"+Integer.toString(m) );
            System.out.println(Integer.toString(start) +":"+Integer.toString(m));

        }

        m = m + n;




    }



    adapter = new Adapter(getActivity(),titles);

    GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(),5,GridLayoutManager.VERTICAL,false);
    dataList.setLayoutManager(gridLayoutManager);
    dataList.setAdapter(adapter);









    btnOk.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(), "ok", Toast.LENGTH_SHORT).show();
            alertDialog.dismiss();


        }
    });


    btnCancle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getActivity(), "cancle", Toast.LENGTH_SHORT).show();

            alertDialog.dismiss();
        }
    });



    alertDialog.show();


}
public void DialogTime(){
final AlertDialog.Builder alert=新建AlertDialog.Builder(getActivity());
View mView=GetLayoutFlater()。充气(R.layout.dialog\u apointment\u time,null);
最终按钮btnOk=(按钮)mView.findviewbyd(R.id.okb2);
最终按钮BTNCNCLE=(按钮)mView.findViewById(R.id.cansleb2);
警报.setView(mView);
final AlertDialog AlertDialog=alert.create();
alertDialog.setCanceledOnTouchOutside(false);
/////////////回收视图////////
回收视图数据列表;
列出标题;
适配器;
dataList=view.findviewbyd(R.id.dataList);
titles=新的ArrayList();
int start=3;
int-end=6;
int n=15;
int resultOfCount=60/n;
int resultOfHour=结束-开始;
int totalResult=resultOfCount*resultOfHour;
int m=0;//明信片
//你可以从开始到结束
对于(int i=0;i45){
启动++;
m=0;
}
如果(m==0){
titles.add(Integer.toString(start)+“:“+”0“+Integer.toString(m));
System.out.println(Integer.toString(start)+“:0”+Integer.toString(m));
}
否则{
titles.add(Integer.toString(start)+“:“+Integer.toString(m));
System.out.println(Integer.toString(start)+“:“+Integer.toString(m));
}
m=m+n;
}
适配器=新适配器(getActivity(),标题);
GridLayoutManager GridLayoutManager=新的GridLayoutManager(getActivity(),5,GridLayoutManager.VERTICAL,false);
setLayoutManager(gridLayoutManager);
dataList.setAdapter(适配器);
btnOk.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(getActivity(),“ok”,Toast.LENGTH_SHORT.show();
alertDialog.disclose();
}
});
btnCancle.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(getActivity(),“cancle”,Toast.LENGTH_SHORT.show();
alertDialog.disclose();
}
});
alertDialog.show();
}
此行中的错误查找 (
dataList.setLayoutManager(gridLayoutManager);

考虑重新格式化您的问题以增加可读性。使用更多的大写字母将是一个很好的开始。作为调试的下一步,找出哪个元素为NULL,有两个候选元素“dataList”和“gridLayoutManager”。然后相应地更新您的问题:)@Aiyion.Prime谢谢您的评论……看起来好多了,您发现这两个变量中的哪一个是空的了吗?@Aiyion.Prime没有:(我不知道哪些变量是空的,但是回收器代码在另一个活动(意图)中运行得很好,所以仅在自定义对话框中不运行:(请帮助我请您的问题提供第一行
致命异常之后的完整堆栈跟踪。