2016-05-02 21 views
0

私はFirstActivitySecondActivityの2つのアクティビティを持っています。addOnItemTouchListenerを使用してケースを切り替える

FirstActivityには2つのケースがあります。 case 1およびcase 2;

SecondActivityには、recyclerView.addOnItemTouchListenerイベントが定義されています。

私がやっていることは、recyclerView.addOnItemTouchListenerが初期化されているとき、またはアイテムにタッチしたときです。 case 1が呼び出されます。それ以外の場合はcase 2となります。誰かが私にこれを助けることができますか?

答えて

0

事前に簡単な方法をあなたのThnk:

は、Applicationクラスの静的ブール変数を持っています。 SecondActivityで項目をタッチすると、ブール値が変更されます。 FirstActivityのブール値をチェックして、どのケースを実行するかを決定します。

正しい方法:

SecondActivityのbooleanメンバ変数を持っています。 SecondActivityで項目をタッチすると、ブール値が変更されます。 onActivityResultを通じて、その論理値をFirstActivityに送信します。 FirstActivityのブール値をチェックして、どのケースを実行するかを決定します。

別の正しい方法:

SecondActivityからSharedPreferencesのbooleanを保存します。 FirstActivityのSharedPreferencesからブール値を取得し、ブール値をチェックしてどのケースを実行するかを決定します。

0

別の方法として、カスタムタッチリスナークラスを作成する方法があります。私は私のアプリの1つのためにそれをしました。

public final class CustomTouchListener implements OnTouchListener { 
    Context context; 

    public CustomTouchListener(Context context) { 
     super(); 
     this.context = context; 

    } 


    public boolean onTouch(View view, MotionEvent motionEvent) { 
     if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 

      //case 1 code here 

      return false; 
     }else{ 
      //case 2 code here 
     } 

     return true; 

    } 
} 

次に、あなたが呼び出します。

recyclerView.setOnTouchListener(new CustomTouchListener(this)); 
関連する問題