我的Android应用程序遇到了问题。当我尝试在我的ListView中为我的ListView添加视图时,应用程序崩溃了。这是我的LogCat:
java.lang.NullPointerException
at com.example.foodsaver2.DatabaseFillerFragment$3.onItemClick(DatabaseFillerFragment.java:912)
at android.widget.AdapterView.performItemClick(AdapterView.java:299)
at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
at android.widget.AbsListView$3.run(AbsListView.java:3638)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
这是我的代码:
LinearLayout customerLayout = (LinearLayout)view.findViewById(R.id.customerLayout);
if(customerLayout == null){
//Inflate the Customer Information View
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService( Context.LAYOUT_INFLATER_SERVICE );
LinearLayout leftLayout = (LinearLayout)view.findViewById(R.id.rightLayout);
View customerInfo = getActivity().getLayoutInflater().inflate(R.layout.foodinfo, leftLayout, false);
leftLayout.addView(customerInfo); //It crashes on this line!
}
我已经检查过SO和Google一段时间了,我开始感到沮丧。关于这个问题的任何帮助将不胜感激。
答案 0 :(得分:0)
这里有很多错误。
尝试以下方法:
LinearLayout customerLayout = (LinearLayout) view.findViewById(R.id.customerLayout);
if (customerLayout == null) {
LayoutInflater inflater = LayoutInflater.from(getActivity());
LinearLayout layout = (LinearLayout) view.findViewById(R.id.rightLayout);
inflater.inflate(R.layout.foodinfo, leftLayout);
}
inflate(int, ViewGroup)
和inflate(int, ViewGroup, boolean)
会自动将View添加到父ViewGroup(除非第3个布尔参数设置为false)。 leftLayout
可能会解析为null,在这种情况下,您应确保view
包含ID为@id/rightLayout
的视图。