Java 我收到一个错误->;。有人能帮我吗
尝试在com.example.pcetsnmiet.Fragments.DashBoardFragment.onCreateView(DashBoardFragment.java:34)上的空对象引用上调用虚拟方法“android.view.view android.view.view.findViewById(int)” dashboardFragment.xmlJava 我收到一个错误->;。有人能帮我吗,java,android,android-fragments,Java,Android,Android Fragments,尝试在com.example.pcetsnmiet.Fragments.DashBoardFragment.onCreateView(DashBoardFragment.java:34)上的空对象引用上调用虚拟方法“android.view.view android.view.view.findViewById(int)” dashboardFragment.xml <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".Fragments.DashBoardFragment"
android:background="#ECB1B1">
<com.denzcoskun.imageslider.ImageSlider
android:id="@+id/image_slider"
android:layout_width="match_parent"
android:layout_height="200dp"
app:iss_auto_cycle="true"
app:iss_period="1000"
app:iss_delay="0"
android:background="#fff"
/>
DashboardFragment.java
public class DashBoardFragment extends Fragment {
ImageSlider imageSlider;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
imageSlider = (ImageSlider) getView().findViewById(R.id.image_slider); //this is the line error pointing at
final List<SlideModel> remoteimages = new ArrayList<>();
FirebaseDatabase.getInstance().getReference().child("Slider")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for(DataSnapshot data:snapshot.getChildren())
{
remoteimages.add(new SlideModel(data.child("url").getValue().toString(),data.child("title").getValue().toString(), ScaleTypes.FIT));
}
imageSlider.setImageList(remoteimages,ScaleTypes.FIT);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_dash_board, container, false);
}
公共类DashBoardFragment扩展了片段{
图像滑块图像滑块;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
imageSlider=(imageSlider)getView().findViewById(R.id.image_slider);//这是指向的行错误
最终列表remoteimages=new ArrayList();
FirebaseDatabase.getInstance().getReference().child(“滑块”)
.addListenerForSingleValueEvent(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
对于(DataSnapshot数据:snapshot.getChildren())
{
添加(新的SlideModel(data.child(“url”).getValue().toString(),data.child(“title”).getValue().toString(),scaleType.FIT));
}
setImageList(remoteimages,scaleType.FIT);
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
//为该碎片膨胀布局
返回充气机。充气(右布局、碎片、仪表板、容器、假);
}
}您的代码应该如下所示:
public class DashBoardFragment extends Fragment {
ImageSlider imageSlider;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dash_board, container, false);
imageSlider = (ImageSlider) view.findViewById(R.id.image_slider);
final List<SlideModel> remoteimages = new ArrayList<>();
FirebaseDatabase.getInstance().getReference().child("Slider")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot data : snapshot.getChildren()) {
remoteimages.add(new SlideModel(data.child("url").getValue().toString(), data.child("title").getValue().toString(), ScaleTypes.FIT));
}
imageSlider.setImageList(remoteimages, ScaleTypes.FIT);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
return view;
}
}
公共类DashBoardFragment扩展了片段{
图像滑块图像滑块;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(右布局。碎片\仪表板,容器,假);
imageSlider=(imageSlider)view.findViewById(R.id.image\u slider);
最终列表remoteimages=new ArrayList();
FirebaseDatabase.getInstance().getReference().child(“滑块”)
.addListenerForSingleValueEvent(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
对于(DataSnapshot数据:snapshot.getChildren()){
添加(新的SlideModel(data.child(“url”).getValue().toString(),data.child(“title”).getValue().toString(),scaleType.FIT));
}
setImageList(remoteimages,scaleType.FIT);
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
返回视图;
}
}
您使用了错误的方法。您需要首先定义布局,然后从中获取视图,如下所示-
View view = inflater.inflate(R.layout.fragment_dash_board, container, false);
imageSlider = (ImageSlider) view.findViewById(R.id.image_slider);
//let other code remain same
return view;
好的,非常感谢你…它成功了