2016-05-27 19 views
0

继我的第一个应用程序成功发布后,我想挑战自己建立一个教会语言的应用程序。我使用App Inventor创建了一个原型,它基本上包含一个短语,一个播放录音的按钮,一个可以进行Toast翻译的按钮和一个下一个按钮。在现有活动中回收利用开放另一活动

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

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

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

谢谢你帮助一个新手。


编辑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));** 

我不能得到的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"), 

}; 

}

回答

0

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

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

+0

谢谢你的帮助。我已经决定在练习中使用多个列表,但是我遇到了一个问题:如何使用String标题访问列表的名称?我已经更新了我的原始问题 –

+0

通过给每个练习赋予自己独特的int引用,然后使用这个intref创建练习的散列图解决了这个问题 –

相关问题