[英]Android App: How can I print out a String with java code?
我对Android编程很陌生!
我想做一些非常简单的事情:
if(i < 1)
System.out.println("Ja");
else
System.out.println("Nein");
我如何实现这一点的第一个想法是在 xml 中有一个带有 String 资源的 TextView:
<TextView
android:id="@+id/mytextview"
android:text="@string/Entscheidung"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后通过 Java 代码访问该资源:
R.string.Entscheidung = "Ja";
但它不起作用:错误:(13, 17)错误:无法为最终变量Entscheidung赋值
有没有另一种方法可以做到这一点?
谢谢 !
首先我想澄清一下字符串资源的概念以及它们是如何使用的。 对于常量字符串值(在您的情况下为“Ja”和“Nein”),您可以在名为strings.xml
的文件中定义这些值,该文件位于res/values
文件夹中。 举个例子:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="antwort_ja">Ja</string>
<string name="antwort_nein">Nein</string>
</resources>
这些值在编译时完成,因此可以在整个应用程序中用作常量。 对于 XML 布局文件,是的,您可以使用@string/
前缀来引用这些字符串资源。 但是,在您的 Java 代码中,您只能使用R.string
前缀的getString()
方法来引用这些值。 因为这些R.string
值是final
,它们不能在运行时更改,因此会出现错误。 在您的情况下,您的代码将是:
// I'm assuming you have this declared in onCreate()
TextView myTextView = (TextView)findViewById(R.id.mytextview);
if (i < 1) {
myTextView.setText(getString(R.string.antwort_ja));
} else {
myTextView.setText(getString(R.string.antwort_nein));
}
这也假设您正在从您的活动中调用它。 如果没有,您可能需要从Context
实例调用它,例如context.getString(R.string.antwort_ja);
strings.xml
文件:
<string name="firststring">Hello World</string>
<string name="secondtring">Welcome</string>
活动或片段:
textView.setText(i < 1 ? getResources().getString(R.string.firststring) : getResources().getString(R.string.secondtring));
首先声明你的 TextView 变量
private TextView mTextView;
在 onCreate
mTextView = (TextView) findViewById(R.id.mytextview);
之后你可以使用它
if(i < 1)
System.out.println("Ja");
else
System.out.println("Nein");
可以使用您的 TextView 完成,如下所示
if(i < 1)
mTextView.setText(getString(R.String.myJaText);
else
mTextView.setText(getString(R.String.myNeinText);
在 Strings.xml 中,您可以编写要在文本字段中使用的文本。
您可以在Res - Values
找到 Strings.xml :
<string name="myJaText">Ja</string>
<string name="myNeinText">Nein</string>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.