使用不同的字符串填充TextView以用于不同的级别

时间:2013-12-16 14:24:58

标签: java android xml textview populate

我正在进行一个问答游戏,每个级别都有一个问题的文本视图和一个文本字段供您输入答案。会有很多级别,所以我不知道有没有大量的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"/>

任何帮助都会感激不尽!

1 个答案:

答案 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以获取有关存储数据的信息。