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

ygya80vv  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(743)

我想在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在应用程序启动时设置文本,但是如果我甚至不能通过调用这个简单的方法在上面设置一个简单的字符串,它就不会工作。

kpbpu008

kpbpu0081#

要找到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");

    }
qacovj5a

qacovj5a2#

你最好把一切都分享 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")
    }

相关问题