Android无法更改按钮文字

Pha*_*inh -2 crash android button

我知道这是一个愚蠢的问题,但我不知道为什么会这样.这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Button button = (Button)findViewById(R.id.button2);
    button.setText("Blabla");

    setContentView(R.layout.activity_aiueo);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

片段XML:

<Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Next"
        android:layout_weight="1"
        android:onClick="next" />
Run Code Online (Sandbox Code Playgroud)

我只想在启动活动时更改文本,但它会使我的应用程序崩溃.

logcat的

06-23 15:42:05.396: E/AndroidRuntime(13039): FATAL EXCEPTION: main
06-23 15:42:05.396: E/AndroidRuntime(13039): Process: com.shinway.hiragana, PID: 13039
06-23 15:42:05.396: E/AndroidRuntime(13039): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shinway.hiragana/com.shinway.hiragana.table.Aiueo}: java.lang.NullPointerException
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread.access$800(ActivityThread.java:145)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.os.Handler.dispatchMessage(Handler.java:102)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.os.Looper.loop(Looper.java:136)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread.main(ActivityThread.java:5144)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at java.lang.reflect.Method.invokeNative(Native Method)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at java.lang.reflect.Method.invoke(Method.java:515)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at dalvik.system.NativeStart.main(Native Method)
06-23 15:42:05.396: E/AndroidRuntime(13039): Caused by: java.lang.NullPointerException
06-23 15:42:05.396: E/AndroidRuntime(13039):    at com.shinway.hiragana.table.Aiueo.onCreate(Aiueo.java:37)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.Activity.performCreate(Activity.java:5231)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
06-23 15:42:05.396: E/AndroidRuntime(13039):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
06-23 15:42:05.396: E/AndroidRuntime(13039):    ... 11 more
Run Code Online (Sandbox Code Playgroud)

没有settext代码.其他一切都很好.谢谢您帮忙.

M D*_*M D 5

改变顺序就好

 setContentView(R.layout.activity_aiueo);

 Button button = (Button)findViewById(R.id.button2);
 button.setText("Blabla");
Run Code Online (Sandbox Code Playgroud)

您应首先setContentView(R.layout.activity_aiueo);参考ButtonView,并确保在布局中使用Id 按钮.button2activity_aiueo

  • @JeremyPham`简单计划'的答案是正确的,但是您将xml布局作为片段名称发布,我猜你有一个片段类,所以你需要在onCreateView()中粘贴你的代码,是你需要膨胀你的视图并使用`view .findViewById()`. (2认同)