我正在制作一个问答游戏,每个级别都有一个问题的 TextView 和一个供您输入答案的文本字段。将有很多级别,所以我想知道是否有更快的解决方案,而不是大量的 Java 类和 XML 文件?
我正在考虑使用一个 Java 类来为不同的级别使用不同的字符串填充同一个 TextView。这可能吗?我想我可能必须使用数据库?
我现在的代码是这样的(XML):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="fill_horizontal"
android:layout_margin="25dp"
android:orientation="vertical" >
<TextView
android:id="@+id/tutorialWelcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/tutorial_step_four_a"
android:textSize="@dimen/text_size"
android:textStyle="bold" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/enterButton"
android:hint="@string/answerhere"
android:inputType="text"
android:textSize="@dimen/text_size" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tutorialWelcome"
android:layout_centerHorizontal="true"
android:text="@string/tutorial_step_four_b"
android:textSize="@dimen/text_size" />
<ImageButton
android:id="@+id/enterButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:contentDescription="@string/nextbutton"
android:src="@drawable/ic_action_send_now"
style="?android:attr/borderlessButtonStyle"/>
任何帮助将不胜感激!
最佳答案
有几个选项:
将您的问题存储在 strings.xml 中,然后使用 getString(R.string.id_of_question_you_want) 获取问题并稍后显示
将问题存储在 SQLite 数据库中
将问题存储在文件中,您将需要编写函数来读取文件
编辑:
也可以在xml中使用字符串数组,然后根据当前显示的是哪个questin,从数组中填充,eg:
让您的 quesitons.xml 在其中定义您的问题数组:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="questions_array"> <item>Question 1 content</item> <item>Question 2 content</item> <item>Question 3 content</item> <item>Question 4 content</item> </string-array> </resources>
在您的 Activity 中,您可以获取数组中的这些问题:
Resources res = getResources(); String[] questions = res.getStringArray(R.array.questions_array);
然后,跟踪现在应该显示哪个问题,并从填充布局的 Activity 中的数组中获取字符串:
int questionNumber = 5; textViewQuestion.setText(questions[questionNumber]);
请记住检查边界,否则如果您的 questionNumber 高于数组中的问题数,您将得到一个异常。请记住,Java 中的数组从索引 0 开始。
可能还有一些其他的...
检查 the docs有关存储数据的信息。
关于java - 使用不同级别的不同字符串填充 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613205/