尝试调用接口方法';java.util.Iterator java.util.List.Iterator();关于空对象
I/zygote:执行完整代码缓存收集,代码=495KB,数据=334KB 代码缓存收集后,代码=484KB,数据=293KB尝试调用接口方法';java.util.Iterator java.util.List.Iterator();关于空对象,java,android,runtime-error,Java,Android,Runtime Error,I/zygote:执行完整代码缓存收集,代码=495KB,数据=334KB 代码缓存收集后,代码=484KB,数据=293KB java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference at com.example.agriflex.ui.fooddetail.Foo
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
at com.example.agriflex.ui.fooddetail.FoodDetailFragment.displayInfo(FoodDetailFragment.java:236)
at com.example.agriflex.ui.fooddetail.FoodDetailFragment.lambda$onCreateView$2$FoodDetailFragment(FoodDetailFragment.java:135)
at com.example.agriflex.ui.fooddetail.-$$Lambda$FoodDetailFragment$qUbisKr6hIzCwm4MXSIKgBZ3EXA.onChanged(Unknown Source:4)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:113)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:126)
at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged(LiveData.java:424)
at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(LiveData.java:376)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:361)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:300)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:339)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:145)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:131)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2637)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:915)
at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2100)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1874)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1830)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
将您的
displayInfo
方法替换为
我刚刚在列表迭代之前添加了空检查。您的“foodModel”似乎为空:
在显示信息之前,需要检查是否为空:
foodDetailViewModel.getMutableLiveDataFood().observe(this, foodModel -> {
displayInfo(foodModel);
});
另外,您需要检查“getMutableLiveDataFood()”方法是否返回空数据请帮助我解决上述运行时错误Brother在更改上述错误后,我得到了新错误java.lang.NullPointerException:尝试调用虚拟方法'java.lang.Long com.example.agriflex.Model.SizeModel.getPrice()'在com.example.agriflex.ui.fooddetail.FoodDetailFragment.calculateTotalPrice(FoodDetailFragment.java:271)的com.example.agriflex.ui.FoodDetailFragment.displayInfo(FoodDetailFragment.java:264)的空对象引用上在com.example.agriflex.ui.fooddetail.FoodDetailFragment.lambda$onCreateView$2$FoodDetailFragment(FoodDetailFragment.java:136)上,请帮助我解决在我们的循环中“for(SizeModel SizeModel:Common.selectedFood.getSizeModel())”的“SizeModel”为null,只需添加一个“if(SizeModel!=null”)在对无线电按钮执行操作之前的条件我将if(foodModel!=null)更改为if(foodModel==null)我得到了输出,但没有得到无线电按钮名称问题兄弟我无法解决。请帮助我你仍然得到nullpointerexception?@sumithVarmamarries兄弟我仍然得到
private void displayInfo(FoodModel foodModel) {
Glide.with(getContext()).load(foodModel.getImage()).into(img_food);
food_name.setText(new StringBuilder(foodModel.getName()));
food_description.setText(new StringBuilder(foodModel.getDescription()));
food_price.setText(new StringBuilder(foodModel.getPrice().toString()));
if (foodModel.getRatingValue() != null)
ratingBar.setRating(foodModel.getRatingValue().floatValue());
((AppCompatActivity)getActivity())
.getSupportActionBar()
.setTitle(Common.selectedFood.getName());
//Size
//Add NULL check for your object and your code wont throw the exception
if(null!=Common.selectedFood && null!=Common.selectedFood.getSizeModel()) {
for (SizeModel sizeModel : Common.selectedFood.getSizeModel()) {
RadioButton radioButton = new RadioButton(getContext());
radioButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked)
Common.selectedFood.setUserSelectedSize(sizeModel);
calculateTotalPrice(); //Update Price
});
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.MATCH_PARENT,
1.0f);
radioButton.setLayoutParams(params);
radioButton.setText(sizeModel.getName());
radioButton.setTag(sizeModel.getPrice());
rdi_group_size.addView(radioButton);
}
}
if (rdi_group_size.getChildCount() > 0) {
RadioButton radioButton = (RadioButton) rdi_group_size.getChildAt(0);
radioButton.setChecked(true); //Default First Select
}
calculateTotalPrice();
}
foodDetailViewModel.getMutableLiveDataFood().observe(this, foodModel -> {
displayInfo(foodModel);
});
foodDetailViewModel.getMutableLiveDataFood().observe(this, foodModel -> {
if( foodModel != null )
displayInfo(foodModel);
});