繁体   English   中英

Android 应用程序:如何用 java 代码打印出一个字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM