java - Android 中的 TextView.setText

标签 java android

我是 Android 开发新手,我想了解 TextView.setText 方法的工作原理。在此示例中,

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 怎么可能足够呢?你能向我解释一下吗?谢谢。

最佳答案

这里的int,是string.xml中定义的String值的id。因此 textView.setText(int resid) 获取字符串值,然后在内部设置。

这是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));
}

您可以避免从资源中获取字符串值并使代码更简单。

关于java - Android 中的 TextView.setText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30734556/

相关文章:

java - Java 11 中默认构造函数的可见性?

android - 使用 2g 网络创建移动应用程序

java - 发送电子邮件,使 "from"是名称或文本而不是真实电子邮件地址

java - 如何从打包在war文件中的jar文件中加载资源?

java - 如何修复 java.io.InvalidClassException : org. springframework.security.core.context.SecurityContextImpl

java - 选择 JCombobox 时 GUI 卡住,如何在 ActionListener 中使用条件语句在 Swing 应用程序中使用计时器?

java - 如何为车速表 Android 应用程序设置速度限制?

java - 具有多个项目的 Android TransitionDrawable

android - GPS追踪应用程序(策略)

android - Firebase 作为 Android 应用后端