如何在 onCreate 方法中设置 android 按钮的文本?

How to set text of android button in onCreate Method?

我想在 onCreate 方法中设置我的按钮的文本,但是它不起作用。

MainActivity中的代码-Class:

Button button;

onCreate 中的代码:

button = findViewById(R.id.button);
    button.setText("test");

按钮在 xml:

<Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:alpha="0.5"
        android:background="@color/design_default_color_secondary_variant"
        android:onClick="checkPermissions"
        android:textSize="30sp" />

例外情况:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setText(java.lang.CharSequence)' on a null object reference

我知道我可以在 XML 中设置按钮的文本,但我想通过 sharedpreferences 在应用程序启动时设置文本,但如果我连一个简单的设置都无法设置,那将无法正常工作通过调用这种简单的方法将字符串串到它上面。

您最好分享整个 onCreate() 代码以获得帮助。

到现在为止,我可以假设你不打电话 setContentView(R.layout.your_layout_with_button)onCreate() 方法中,在通过调用 findViewById(R.id.button).

访问按钮之前

onCreate() 中的整个代码看起来像这样:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.your_layout_with_button)

        val button = findViewById(R.id.button)
        button.setText("test")
    }

要查找 ID 片段,您需要查看参考。

@Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        Button button= view.findViewById(R.id.button);
        button.setText("text");

    }