Java Android中的TextView.setText
我是Android开发新手,我想了解TextView.setText方法的工作原理。在这个例子中Java Android中的TextView.setText,java,android,Java,Android,我是Android开发新手,我想了解TextView.setText方法的工作原理。在这个例子中 private TrueFalse[] mQuestionBank = new TrueFalse[] { new TrueFalse(R.string.question_oceans, true), new TrueFalse(R.string.question_mideast, false),
private TrueFalse[] mQuestionBank = new TrueFalse[]
{
new TrueFalse(R.string.question_oceans, true),
new TrueFalse(R.string.question_mideast, false),
new TrueFalse(R.string.question_africa, false),
};
private int mCurrentIndex = 0;
mQuestionTextView = (TextView) findViewById(R.id.question_text_view);
int question = mQuestionBank[mCurrentIndex].getQuestion();
mQuestionTextView.setText(question);
我不明白的一点是,setText如何通过只获取一个int来返回问题文本?一个int怎么足够呢?你能给我解释一下吗?谢谢。将字符串添加到字符串文件时,会在R文件中生成一个引用,该引用是一个int,可以在代码和xml文件中使用,如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_oceans" />
R文件中字符串“R.String.question_”的引用是一个int,因此SetText可以接受int(来自引用)并且可以接受像“my String”这样的真实字符串。int这里是String.xml中定义的字符串值的id。所以textView.setText(intresid)将值作为字符串获取,然后在内部设置 以下是TextView的源代码
public final void setText(CharSequence text) {
setText(text, mBufferType);
}
// So this get string value from resources and use the above setText().
public final void setText(int resid) {
setText(getContext().getResources().getText(resid));
}
您可以避免从资源中获取字符串值,并使代码更简单。int是strings.xml、
R.string.question\u
的一个条目,例如。@Blackbelt so setText在R.java文件中搜索并找到字符串并打印它?不完全是这样。它向AssetManager
请求字符串。java只包含我看到的idsok的定义。非常感谢。