2012-04-18 4 views
0

私は4つのボタンがあるところで何かしたいです。 2つの一致するボタンが押された場合にのみ成功します。現時点では、ワンクリックを処理する方法しかわかりませんが、ボタンを押してから別のボタンを押すと、ボタンが押された場合に失敗または成功するようになります。マッチングゲームに似ています

これを実装するにはどうすればよいですか?

答えて

0

2つのボタンを同時に押すことを検出したい場合は、ボタンをOnTouchListenerに設定し、ボタンを押すたびに検出するか、またはボタンをクリックして検出します。リリースされました。少しの簿記で、ユーザーが同時に2つの一致するボタンを押したかどうかを検出することができます。

連続するボタンのクリックを追跡する場合は、最後にクリックされたボタンを識別する方法が必要です。これを行うにはいくつかの方法があります。 1つは、別のOnClickHandler(または異なるメソッド)を各ボタンに割り当てることです。もう一つの方法は(私の意見では)各ボタンにユニークなタグ値を割り当てることです。 XMLでは、タグは文字列になり、Integer.parseInt()を使用してint値に解析できます。コードではIntegerにすることができます。次に、クリックハンドラがボタンのタグ値を決定し、その値をプログラムロジックで使用します。

これを使用する方法は次のとおりです。クリックされた最後のボタンのフィールドをゲームクラスに定義します。いずれのボタンもクリックする前に、値が-1(ボタンなし)でなければなりません。次にボタンをクリックすると、そのID(タグかクリックハンドラが呼び出されたかのいずれか)が決定されます。最後のボタンと現在のボタンが正しいシーケンスを形成しているかどうかを確認します。そうでない場合は、最後のボタンを現在のボタンに設定します。

+0

私はボタンの同時押下を望んでいません。私はボタンが欲しい、そして、次の連続したボタンを押すと、私は実際に何かをしたい。それで、最初のボタン・プレスを覚えていて、2番目のボタン・プレスに基づいて何かをします。私はあなたに従ってくれることを願っています:S – user1274830

+0

@ user1274830私の更新された答えを見てください。 –

0

clickedイベントで現在のボタンIDを取得できます。これにより、以前にクリックされたボタンの整数値を維持できます。

+0

私はプログラミングにかなり新しいです。私はこれについてやりますか? 現在のところ、ほとんどのボタンがR.id.buttonを押します。this.startActivity(nextActivity);それは私が現在やっていることです。私はインターガーの価値をどのように維持しますか? – user1274830

0

各ボタンが新しいアクティビティを開始するというあなたのコメントによれば、1つのアクティビティを使用することを検討し、単にビューを変更することをお勧めします。

特に、最後のアクティビティの特定のボタンクリックが新しいアクティビティに影響を与える場合、実際には同じアクティビティになるはずです。

あなたが本当に複数のアクティビティを使用したい場合は、あなたはいくつかのオプションがあります:

  1. ストアSharePreferencesで最後に押されたボタンを。
  2. 新しいアクティビティを開始するときにファイル内の最後のボタンまたはSQLiteデータベースを保存します。
  3. intent.putExtra()を使用して最後に押されたボタンを保存すると、新しいアクティビティはgetIntent()を通じてアクセスできます。 getExtra()
関連する問題