-3

これは私の最初のアプリであり、簡単なLiar'sDiceゲームを作成しようとしています。

私はメインのアクティビティクラスですべてを書き、ランダムなサイコロを振って、入札を入力するためのテキストエディットボックスと、入札して呼び出すためのボタンを作成しました。

では、ゲームの実行後、スコアを追跡して再度実行するにはどうすればよいですか?

再起動ボタンを使用して別のアクティビティ画面を作成し、ゲームの終了後にそこに移動して、メインのアクティビティを再開できるようにしました。ただし、その画面から戻る(電話キー)を押すと、前のゲームの終了時にスタックします。

また、配列を使用して勝ち負けを追跡しようとしていますが、アクティビティから配列を前後に移動する方法がわかりません。

4

4 に答える 4

0

メインアクティビティを再開するには、次のことができます

finish();
            try {
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            startActivity(new Intent(getContext(), YourMainActivity.class));// then call again

設定またはsqliteを使用してデータを保持します

于 2012-08-17T07:42:59.403 に答える
0

数字を保持するグローバル配列を作成し、ユーザーがボタンまたはロールをトリガーしたいものをクリックしたときにメソッドを実行するだけです。あなたを示す簡単な方法は

<Button
    android:layout_height="wrap_content"
    android: layout_width="wrap_content"
    android:text="Touch Me"
    android:on click="leRoll" />

次に、アクティビティで、leRoll「touchme」ボタンがクリックされたときにトリガーされるメソッドを呼び出すことができます。スコアリングされたすべての保存は、グローバル配列を使用してそこで行うことができます。

于 2012-08-17T07:44:19.360 に答える
0

これがあなたが探しているものであるかどうかは完全にはわかりませんが:

戻るボタンを上書きして、2番目のアクティビティの画面に移動できます。

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
  Intent intentstart = new Intent(Activity2.this, MainActivity.class);
  intentstart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(intentstart);
  return true;
}
return super.onKeyDown(keyCode, event);    
}
于 2012-08-17T07:49:36.237 に答える
0

SQLiteデータベースで勝ち負けを追跡することをお勧めします。やり過ぎのように聞こえるかもしれませんが、任意の数の繰り返される構造化されたデータのビットを格納するのに理想的です。オーバーヘッドが大きすぎる場合は、ファイルを開いて新しいゲームスコアを最後に追加するか、SharedPreferencesの文字列の配列に保存します。これら3つのいずれも、値の単純なベクトルを格納するのに適しています。値がいくつあるかを事前に知らず、アプリケーションの任意の部分からそれらを読み取ることができます。

SharedPreferenceを使用して現在のゲームの状態を保存し、ゲームアクティビティに戻るたびに正しいものを表示できるようにする必要があります。ゲームが終了したらすぐに、ゲームの状態のSharedPreference値を書き込み、プレーヤーがゲームの終了時にいることを示します。次に、アクティビティが次に起動すると、新しいゲームを開始することがわかります。

于 2012-08-17T08:20:22.773 に答える