Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在onCreate方法中设置android按钮的文本?_Java_Android_Button_Oncreate - Fatal编程技术网

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

Java 如何在onCreate方法中设置android按钮的文本?,java,android,button,oncreate,Java,Android,Button,Oncreate,我想在onCreate方法中设置按钮的文本,但它不起作用 MainActivity类中的代码: Button button; onCreate中的代码: button = findViewById(R.id.button); button.setText("test"); xml中的按钮: <Button android:id="@+id/button" android:layout_width="

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

MainActivity类中的代码:

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" />

例外情况如下:

原因:java.lang.NullPointerException:尝试调用虚拟机 上的方法“void android.widget.Button.setText(java.lang.CharSequence)” 空对象引用


我知道我可以用XML设置按钮的文本,但是我想通过SharedReferences在应用程序开始时设置文本,但是如果我不能通过调用这个简单的方法在按钮上设置一个简单的字符串,它将无法工作。

为了获得帮助,你最好共享整个
onCreate()
代码

现在,我可以假设你没有打电话
setContentView(R.layout.your_layout_with_按钮)
在调用
findViewById(R.id.button)
访问按钮之前,在
onCreate()方法中

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");

    }

您是否先调用了
setContentView(your_layout.xml)
?否则,您的活动将没有任何视图,并且
findViewById
找不到任何内容。是的,但按钮不在activity\u main.xml中。它位于fragment_recording.xml中。onCreate正常,按钮位于activity_main.xml之外的另一个片段中。这可能是错误吗?但是我怎样才能使用我的按钮呢?如果我输入“R.id”,那么我的按钮会显示……我必须把这个方法放在哪里?@OSbOoL在你的片段中非常感谢。这就是我要找的。