我在运行时收到空指针异常。我发布了与之相关的代码。
堆栈跟踪:
08-06 09:25:35.978: E/AndroidRuntime(3029): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
08-06 09:29:27.708: E/AndroidRuntime(3084): FATAL EXCEPTION: main
08-06 09:29:27.708: E/AndroidRuntime(3084): Process: com.loco.android, PID: 3084
08-06 09:29:27.708: E/AndroidRuntime(3084): java.lang.NullPointerException
08-06 09:29:27.708: E/AndroidRuntime(3084): at com.sit.loco.frgment.ContactFragment.onCreateView(ContactFragment.java:60)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.View.measure(View.java:16497)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.View.measure(View.java:16497)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.View.measure(View.java:16497)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-06 09:29:27.708: E/AndroidRuntime(3084): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.View.measure(View.java:16497)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
08-06 09:29:27.708: E/AndroidRuntime(3084): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.View.measure(View.java:16497)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.Choreographer.doFrame(Choreographer.java:544)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.os.Handler.handleCallback(Handler.java:733)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.os.Handler.dispatchMessage(Handler.java:95)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.os.Looper.loop(Looper.java:136)
08-06 09:29:27.708: E/AndroidRuntime(3084): at android.app.ActivityThread.main(ActivityThread.java:5017)
08-06 09:29:27.708: E/AndroidRuntime(3084): at java.lang.reflect.Method.invokeNative(Native Method)
08-06 09:29:27.708: E/AndroidRuntime(3084): at java.lang.reflect.Method.invoke(Method.java:515)
08-06 09:29:27.708: E/AndroidRuntime(3084): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-06 09:29:27.708: E/AndroidRuntime(3084): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-06 09:29:27.708: E/AndroidRuntime(3084): at dalvik.system.NativeStart.main(Native Method)
ContactFragment.java:
public class ContactFragment extends BaseFragment {
TextView textView1, textView2, textView3, textView4, textView5, textView6,
textView7, textView8, textView9;
EditText editText1, editText2, editText3, editText4;
Button button1;
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.layout_contact, null);
textView1 = (TextView) view.findViewById(R.id.textView1);
textView2 = (TextView) view.findViewById(R.id.textView2);
textView3 = (TextView) view.findViewById(R.id.textView3);
textView4 = (TextView) view.findViewById(R.id.textView4);
textView5 = (TextView) view.findViewById(R.id.textView5);
textView6 = (TextView) view.findViewById(R.id.textView6);
textView7 = (TextView) view.findViewById(R.id.textView7);
textView8 = (TextView) view.findViewById(R.id.textView8);
textView9 = (TextView) view.findViewById(R.id.textView9);
editText1 = (EditText) view.findViewById(R.id.editText1);
editText2 = (EditText) view.findViewById(R.id.editText2);
editText3 = (EditText) view.findViewById(R.id.editText3);
editText4 = (EditText) view.findViewById(R.id.editText4);
button1 = (Button) view.findViewById(R.id.button1);
view.findViewById(R.id.inquiry_send).setOnClickListener(
new OnClickListener() { ---->Error occurred at this line belong to the reference id `inquiry.xml`
@Override
public void onClick(View v) {
String inqName = editText1.getText().toString();
String inqMail = editText2.getText().toString();
String inqSub = editText3.getText().toString();
String inqMsg = editText4.getText().toString();
// Mail Check
boolean isValidMail = validEmail(inqMail);
boolean isValid = true;
if (inqName.length() <= 0) {
editText1.setError("Enter Nmae");
isValid = false;
}
if (!isValidMail) {
editText2.setError("Not valid Email");
isValid = false;
}
if (inqSub.length() <= 0) {
editText3.setError("Enter Subject");
isValid = false;
}
if (inqMsg.length() <= 0) {
editText4.setError("Enter Message");
isValid = false;
}
if (isValid) {
sendEnquiry(inqName, inqMail, inqSub, inqMsg);
}
}
});
String someContactNum = "0091 8136864010";
textView8.setText(someContactNum);
String secondContactNum = "0091 8136894010";
textView9.setText(secondContactNum);
return view;
}
}
inquiry.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/app_theme_bg"
android:orientation="vertical" >
.
.
.
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:scrollbars="none" >
.
.
.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp" >
.
.
.
<TextView
android:id="@+id/inquiry_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginBottom="10dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="20dp"
android:layout_marginTop="5dp"
android:background="@drawable/more_item_click"
android:padding="10dp"
android:text="Send"
android:textColor="#FFFFFF"
android:textSize="16sp" />
</LinearLayout>
</ScrollView>
</LinearLayout>
我不知道如何解决这些问题。任何人都可以帮助我。谢谢。
答案 0 :(得分:1)
view.findViewById(R.id.inquiry_send).setOnClickListener...
您的片段正在膨胀的布局中没有ID为inquiry_send
的视图。
因此findViewById
返回null,而setOnClickListener
会抛出NullPointerException
答案 1 :(得分:0)
您已设置layout_contact.xml
view = inflater.inflate(R.layout.layout_contact, null);
并访问 inquiry.xml 的视图,了解例外
的原因删除
view.findViewById(R.id.inquiry_send).setOnClickListener(
new OnClickListener() {
.
.
.});
并在Button上设置Click事件 喜欢
button1..setOnClickListener(
new OnClickListener() {
.
.
.
}):