我的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";
}
答案 0 :(得分:4)
管理Android字符串资源的正确方法是使用res / values文件夹中的string.xml file。
但是,如果需要,您还可以以编程方式设置UI小部件的文本。这通常用于动态文本,但没有什么可以阻止你继续在Constants类中使用静态String
。
在Activity
或Fragment
对包含上述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/>
希望这会有所帮助。