访问android layout.xml

时间:2016-08-18 09:59:12

标签: java android xml

我的android项目中有Constants java类,我想创建一个layout.xml。

在xml文件中,我想访问public static final课程中的Constants字段。

我该怎么做?

layout.xml

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=Constants.HelloMessage/>

Constants.java

public class Constants {
    public static final String HelloMessage = "Hello Dear Users";
}

3 个答案:

答案 0 :(得分:4)

管理Android字符串资源的正确方法是使用res / values文件夹中的string.xml file

但是,如果需要,您还可以以编程方式设置UI小部件的文本。这通常用于动态文本,但没有什么可以阻止你继续在Constants类中使用静态String

ActivityFragment对包含上述RadioButton的布局进行膨胀时,您需要获取对它的引用,然后设置文本。要获得参考,您首先需要在XML中为RadioButton提供一个ID:

<RadioButton
    android:id="@+id/radio_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

然后使用常量字符串以编程方式设置文本:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    RadioButton radioButton = (RadioButton) findViewById(R.id.radio_button);
    radioButton.setText(Constants.HelloMessage);
}

关于样式的说明,您的字符串变量应该在camel case中,因此应该是helloMessage

答案 1 :(得分:2)

将您的xml更改为以下

<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/radBtnId"
/>

在你的java类中,

RadioButton radBtn=(RadioButton)findViewById(R.id.radBtnId);
radBtn.setText(Constants.HelloMessage);

或者你可以在strings.xml中提到String,比如直接在xml文件中引用

 <string name="tag">Name</string>

答案 2 :(得分:1)

为此目的使用strings.xml。你的方式是错误的。

转到res文件夹,然后转到值&gt; strings.xml。打开它并将你的字符串放在那里

<resources>
    <string name="hello_message">Hello Dear Users</string>
<resources>

然后在你的布局中

<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=@string/hello_message/>

希望这会有所帮助。