我正在进行一个问答游戏,每个级别都有一个问题的文本视图和一个文本字段供您输入答案。会有很多级别,所以我不知道有没有大量的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"/>
任何帮助都会感激不尽!
答案 0 :(得分:1)
选项很少:
将您的问题存储在strings.xml中,然后使用getString(R.string.id_of_question_you_want)获取问题并稍后显示
将问题存储在SQLite数据库
将问题存储在一个文件中,您需要编写函数来读取文件
编辑:
你也可以在xml中使用字符串数组,然后根据当前显示的questin,从数组中填充,例如:
让您的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>
在您的活动中,您可以将这些问题放在一个数组中:
Resources res = getResources();
String[] questions = res.getStringArray(R.array.questions_array);
然后,跟踪现在应该显示哪个问题,并从填充布局的活动中的数组中获取字符串:
int questionNumber = 5;
textViewQuestion.setText(questions[questionNumber]);
请记住检查边界,否则如果您的questionNumber高于数组中的问题数,您将获得异常。请记住,Java中的数组从索引0开始。
可能还有其他一些......
检查the docs以获取有关存储数据的信息。