在现有活动中回收vs打开另一个活动

时间:2016-05-27 21:23:02

标签: java android

在成功发布我的第一个应用程序之后,我想挑战自己构建一个可以教授语言的应用程序。我使用App Inventor构建了一个原型,它基本上有一个短语,一个播放录音的按钮,一个可以进行翻版翻译的按钮,以及一个下一个按钮。

当我开始编写这个应用程序时,每次按下一个按钮时,我都依赖于打开新活动的拐杖。这是低效的,坦率地说,我是愚蠢的。

是否最好按顺序构建所有短语,翻译和音频文件的列表/数组,并在点击后更新所有相关视图?如果我希望应用程序还有用户输入自己对问题的回答的活动,那么如何跟踪序列呢?

即。 4个短语活动,然后是1个问答活动,冲洗和重复。

感谢您帮助新手。

EDIT ExerciseActivity已添加

public class ExerciseActivity extends AppCompatActivity {
public static final String TopicKey = "topic";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_exercise);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    Intent intent = getIntent();
    String topic = intent.getStringExtra(TopicKey);

    TextView description = (TextView)findViewById(R.id.phrase);

    **description.setText(FindExercise(topic, 0));**

我无法通过调用练习的主题/标题(即Basics)来使setText工作,因为它是一个字符串而不是练习。如何使用从其他活动收到的标题访问列表?

}

public String FindExercise (Exercise[] exercise, int position){
    return exercise[position].description;
}

//Database for exercise 1 "Basics"
Exercise[] Basics = new Exercise[]{

        new Exercise("Ni hao", "Hello", "b1", "b1"),

};

}

1 个答案:

答案 0 :(得分:0)

一个Activity将为您的应用做。您可以使用动画通知用户问题已更改,而不是开始新活动。

考虑使用本地存储(即数据库)。这将简化存储,检索和跟踪短语显示的顺序。只需添加一个已经访问过短语的标记,以便知道下一个短语,并仅检索未访问过的短语。