Android 空指针异常编辑文本
我试图在侧视图页面中启动日期选择器片段表单片段,并在edittext中显示日期选择器的结果Android 空指针异常编辑文本,android,Android,我试图在侧视图页面中启动日期选择器片段表单片段,并在edittext中显示日期选择器的结果 public class TabEventDetails extends android.support.v4.app.Fragment { EditText txt_eventName; EditText txt_eventDescription; EditText txt_eventfronDate; FragmentCommunicator communica
public class TabEventDetails extends android.support.v4.app.Fragment {
EditText txt_eventName;
EditText txt_eventDescription;
EditText txt_eventfronDate;
FragmentCommunicator communicator;
public TabEventDetails() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.tab_eventdetail, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
communicator = (FragmentCommunicator)getActivity();
txt_eventName = (EditText)getActivity().findViewById(R.id.txtEventName);
txt_eventDescription = (EditText)getActivity().findViewById(R.id.txt_EventDescription);
txt_eventfronDate = (EditText)getActivity().findViewById(R.id.txt_fromDate);
txt_eventfronDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
communicator.LaunchDatePickerFragment();
}
});
}
public void showDate(String date)
{
Log.d("date" , date);
txt_eventfronDate.setText(date);
}
}
当我试图从片段的外侧调用ShowDate方法时,我得到了错误NullPointerException
我在视图寻呼机中使用此片段
我们下面的堆栈跟踪
05-18 16:30:58.759 10322-10322/com.expense.expensecalculator E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.expense.expensecalculator.Fragments.Tabs.TabEventDetails.showDate(TabEventDetails.java:65)
at com.expense.expensecalculator.Activity.ContainerActivity.setDate(ContainerActivity.java:82)
at com.expense.expensecalculator.Fragments.DatePickerFragment.onDateSet(DatePickerFragment.java:62)
at android.app.DatePickerDialog.tryNotifyDateSet(DatePickerDialog.java:199)
at android.app.DatePickerDialog.onClick(DatePickerDialog.java:154)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:185)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5283)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
将初始化放在onCreateView方法上,如下所示:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.tab_eventdetail, container, false);
txt_eventName = (EditText)v.findViewById(R.id.txtEventName);
txt_eventDescription = (EditText)v.findViewById(R.id.txt_EventDescription);
txt_eventfronDate = (EditText)v.findViewById(R.id.txt_fromDate);
return v;
}
如果你能发布stacktrace并指出问题所在,男士可以提供帮助:)你来这里之前试过调试吗?你的edittext属于
tab_evendetai.xml
,但是你在查看活动的布局时发现了许多类似的StackOverflow问题,正如@Raghunandan正确指出的,使用getView而不是getActivity()@托尼:是的,在发布这个问题之前,我已经调试了很多次了。