2

アプリのいくつかの場所で onBackPressed() メソッドを使用しています。あらゆる場所で、このメソッドに他のことをさせたいと思っています。ユーザーが X レイアウトの場合、Back ボタンは Y レイアウトとは別のことをしたいので、onBackPressed メソッドで引数を使用するのが最善の解決策だと考えています。たとえば、X onBackPressed(0); では そして Y onBackPressed(1); 等

@Override
public void onBackPressed(int c){
    if(c==0)Toast.makeText(getApplicationContext(), "This is X", Toast.LENGTH_SHORT).show();
    if (c==1)Toast.makeText(getApplicationContext(), "This is Y", Toast.LENGTH_SHORT).show();
}

しかし、うまくいきません。それを機能させるために何ができるか考えていますか? または、この問題に対するより良い解決策はありますか?

4

3 に答える 3

2

フレームワーク メソッドをオーバーライドしており、API で定義されたもの以外のパラメーターを渡すことはできません。ただし、必要なものを確認する独自のメソッドを作成できます。

   @Override
public void onBackPressed(){

    switch(checkLayout()){
 case 1: //do stuff
 break;
 case 2: .....
 }
 }

CommonsWare のコメントを少し拡張すると、はい、ユーザーは「特定のレイアウト」ではありません。ユーザーはActivity、特定のレイアウトをホストしている特定のものと対話しています。これが何を意味するのかよくわからない場合は、おそらく次のドキュメントを参照してください: http://developer.android.com/reference/android/app/Activity.html

于 2013-11-05T21:17:23.347 に答える
0

クラスにフィールドを作成し、ある場所の値を別の場所の別の値に設定します。次に、onBackPressed()そのフィールドの値を確認し、それに応じて続行します。

于 2013-11-05T21:16:55.057 に答える