2016-05-27 10 views
0

私の最初のアプリの出版が成功したので、言語を教えるアプリを作ることに挑戦したかったのです。 App Inventorを使用してプロトタイプを作成しました。基本的には、フレーズ、録音を再生するボタン、トーストの翻訳を行うボタン、次のボタンがありました。既存のアクティビティ内でのリサイクルと別のアクティビティのオープン

私はこのアプリを書くようになったので、次のボタンを押すたびに新しいアクティビティを開く松葉杖に頼ってきました。これは非効率的かつ率直に、私の愚かです。

すべてのフレーズ、翻訳、およびオーディオファイルのリスト/配列を順番に作成し、クリック時にすべての関連ビューを更新する方がよいでしょうか?ユーザーが質問に自分の反応を入力するような活動をアプリにも持たせたい場合は、どのようにシーケンスを追跡するのでしょうか?

、すなわち4つのフレーズアクティビティ、1つの質問応答アクティビティ、すすぎ、およびリピート。

初心者をお手伝いしていただきありがとうございます。


EDIT ExerciseActivityは、それが文字列ではなく運動ですので、私は、のsetTextは運動の話題/タイトル、すなわち基礎を呼び出して動作させることはできません

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

を追加しました。他のアクティビティから受け取ったタイトルでリストにアクセスするにはどうすればよいですか?

} 

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

ありがとうございます。演習で複数のリストを使用することに決めましたが、私は問題に遭遇しました。文字列タイトルを使用してリストの名前にアクセスするにはどうすればいいですか?私は元の質問を状況に合わせて更新しました –

+0

各課題に独自のint参照を与え、このintrefを使って演習のハッシュマップを作成することで問題を解決しました –

関連する問題