Android studio 为什么我能';是否在自定义对话框中创建网格布局?
大家好,我在“Recyclerview”中创建“网格布局”时遇到问题 首先,我想使用RecyclerView在自定义对话框中创建时间段。。 所以 1/我有一个片段,在这个片段中我创建了一个按钮,我希望当按下按钮时对话框出现 2/因此,我为自定义对话框创建了一个函数(我也创建了自定义布局)…[注意,我的对话框在没有recyclerView代码的情况下工作] 3/我为时间段创建了一个recyclerView[注:recyclerView在另一个活动中工作,它会给我一个结果] 但是 4/当我想在对话框中创建RecyclerView时,它会给我一个错误 (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/当我想在对话
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没有:(我不知道哪些变量是空的,但是回收器代码在另一个活动(意图)中运行得很好,所以仅在自定义对话框中不运行:(请帮助我请您的问题提供第一行致命异常之后的完整堆栈跟踪。