【发布时间】:2015-06-22 09:55:44
【问题描述】:
我有一个带有 Fragment 的 android 应用,它里面有一个按钮,点击它会导致一个 Activity。当我在我的设备上运行该应用程序时,它返回了一个错误。我只是感到困惑,因为一切似乎都是正确的,但随后它返回此错误。请帮我找出我的错误。谢谢!
06-22 17:32:58.103: E/AndroidRuntime(32096): Process: com.samsung.android.example.helloaccessoryprovider, PID: 32096
06-22 17:32:58.103: E/AndroidRuntime(32096): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.samsung.android.example.helloaccessoryprovider
com.samsung.android.example.helloaccessoryprovider.Portfolio_AddImageToConsultation}:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.access$900(ActivityThread.java:177)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.os.Handler.dispatchMessage(Handler.java:102)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.os.Looper.loop(Looper.java:145)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.main(ActivityThread.java:5942)
06-22 17:32:58.103: E/AndroidRuntime(32096): at java.lang.reflect.Method.invoke(Native Method)
06-22 17:32:58.103: E/AndroidRuntime(32096): at java.lang.reflect.Method.invoke(Method.java:372)
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
06-22 17:32:58.103: E/AndroidRuntime(32096): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.samsung.android.example.helloaccessoryprovider.Portfolio_AddImageToConsultation.onCreate(Portfolio_AddImageToConsultation.java:86)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.Activity.performCreate(Activity.java:6289)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
06-22 17:32:58.103: E/AndroidRuntime(32096): ... 10 more
这是我的代码
public class Portfolio extends Fragment {
Button cam;
Intent addEvent;
public Portfolio() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_portfolio,
container, false);
cam = (Button) view.findViewById(R.id.camerabutton);
cam.setOnClickListener(addbutton);
return view;
}
OnClickListener addbutton = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
addEvent = new Intent(getActivity(), Portfolio_AddImageToConsultation.class);
startActivity(addEvent);
}
};
这是我的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:baselineAligned="false"
tools:context=".MainActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/camerabutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign Up" />
【问题讨论】:
-
你在哪里调用这个 Fragment?看起来你正在使用这个 Fragment 类作为 Launcher,这是不正确的。你应该在 Activity 中使用 Fragment。
-
是的,我在另一个 Activity 类中有一个 FragmentManager
标签: android