java.lang.NullPointerException: 尝试调用虚方法'void android.widget.Button.setOnClickListener
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener
我是 android 的新手,我正在尝试制作秒表,但不知道我的代码有什么问题。我收到此错误 -
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
请帮忙。
StudyTimeFragment.java
package com.studypal.khadija.studypal;
import android.app.Fragment;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Chronometer;
public class StudyTimeFragment extends Fragment {
public Button startbutton;
public Chronometer studywatch;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_studytime, container, false);
startbutton=(Button)rootView.findViewById(R.id.button);
studywatch = (Chronometer)rootView.findViewById(R.id.chronometer);
startbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
studywatch.setBase(SystemClock.elapsedRealtime());
studywatch.start();
return;
}
});
return rootView;
}
}
fragment_studytime.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Chronometer
android:layout_width="88dp"
android:layout_height="91dp"
android:id="@+id/chronometer"
android:layout_gravity="top|center"
android:layout_marginTop="175dp"
android:width="150dp"
android:height="150dp"
android:textSize="70dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
</FrameLayout>
您还没有在 xml 文件中为您的按钮指定 ID。按如下方式更新您的 xml:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
您的按钮似乎需要一个 ID,与您在片段 onCreateView 中查找的 ID 相同。
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
注意新的 android:id 属性.
您还没有为您的按钮分配按钮 ID xml layout.Change 您的按钮标签是这样的
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
我是 android 的新手,我正在尝试制作秒表,但不知道我的代码有什么问题。我收到此错误 -
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
请帮忙。
StudyTimeFragment.java
package com.studypal.khadija.studypal;
import android.app.Fragment;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Chronometer;
public class StudyTimeFragment extends Fragment {
public Button startbutton;
public Chronometer studywatch;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_studytime, container, false);
startbutton=(Button)rootView.findViewById(R.id.button);
studywatch = (Chronometer)rootView.findViewById(R.id.chronometer);
startbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
studywatch.setBase(SystemClock.elapsedRealtime());
studywatch.start();
return;
}
});
return rootView;
}
}
fragment_studytime.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Chronometer
android:layout_width="88dp"
android:layout_height="91dp"
android:id="@+id/chronometer"
android:layout_gravity="top|center"
android:layout_marginTop="175dp"
android:width="150dp"
android:height="150dp"
android:textSize="70dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
</FrameLayout>
您还没有在 xml 文件中为您的按钮指定 ID。按如下方式更新您的 xml:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
您的按钮似乎需要一个 ID,与您在片段 onCreateView 中查找的 ID 相同。
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>
注意新的 android:id 属性.
您还没有为您的按钮分配按钮 ID xml layout.Change 您的按钮标签是这样的
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:layout_gravity="top|center"
android:text="Start"
android:clickable="true"
android:onClick=""
/>