我有一个Option
我有两个activity
,我已经对这两个textViews
应用了setText()
方法。代码如下所示:
textViews
activity_main.xml中
public class MainActivity extends AppCompatActivity {
TextView text1,text2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.text1);
text2=(TextView)findViewById(R.id.text2);
text1.setText(R.string.display+" text");
text2.setText("Display"+" text");
}
}
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.shaloin.settext.MainActivity">
<TextView
android:id="@+id/text1"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:textSize="20sp"
android:layout_height="wrap_content"
android:textColor="#000000"/>
<TextView
android:id="@+id/text2"
android:layout_marginTop="30dp"
android:layout_below="@+id/text1"
android:layout_width="match_parent"
android:textSize="20sp"
android:layout_height="wrap_content"
android:textColor="#000000"/>
</RelativeLayout>
问题在于,第一个 <string name="display">Display : </string>
显示textView
,第二个2131099682 text
显示textView
。我无法理解为什么会这样。
此外,如果我将Display text
更改为
text1.setText(R.string.display+" text");
,我得到正常输出text1.setText(R.string.display);
。任何人都可以清楚我的怀疑。我附上了一个显示输出的图像。谢谢:))
答案 0 :(得分:1)
R.string.display
实际上是一个数字ID,这就是你所看到的。你需要使用的是getString(R.string.display)
通过单独使用ID,setText知道您传入了一个整数并解析了字符串本身。但是如果你在后面添加一个字符串,那么setText会认为它是一个字符串,并在它得到它时输出它。
答案 1 :(得分:0)
你应该获得应用程序的上下文。
textViewID.setText(context.getResources()。getString(R.string.display +“如果你想要别的东西”);
我喜欢创建一个接受int的方法然后通过执行textViewID.setText(方法(R.id.display)+“如果你想要的其他东西”)使它看起来更好;)
textViewID.setText(R.string.display)不起作用的原因是因为它实际上是一个int值(R.string.display)。另外,您需要获得该资源的价值。
答案 2 :(得分:0)
您无法将资源中的String值直接转换为Activity。您需要获取具有资源对象的那些。目前您正在获得如下价值:
text1.setText(R.string.display+" text");
将其更改为:
text1.setText(getResources().getString(R.string.display) + " text");
快乐的编码!