2016-05-02 7 views
0

Ich habe zwei Aktivitäten, FirstActivity und SecondActivity.Wechseln zwischen den Fällen mit addOnItemTouchListener

In FirstActivity habe ich zwei Fälle; case 1 und case 2;

Und in SecondActivity habe ich recyclerView.addOnItemTouchListener Ereignis definiert.

Was ich versuche zu tun ist, wenn recyclerView.addOnItemTouchListener initialisiert wird, oder wenn ich irgendein Element berühre; Die case 1 wird heißen, sonst case 2. Kann mir jemand dabei helfen?

Thnk Sie im Voraus

Antwort

0

einfache Art und Weise:

hat eine statische boolsche Variable in Anwendungsklasse. Ändern Sie diesen booleschen Wert, wenn Sie das Element in SecondActivity berühren. Überprüfen Sie den booleschen Wert in FirstActivity, um zu entscheiden, welcher Fall ausgeführt wird.

Richtiger Weg:

Haben Sie einen boolean Membervariable in der SecondActivity. Ändern Sie diesen booleschen Wert, wenn Sie das Element in SecondActivity berühren. Senden Sie den booleschen Wert über onActivityResult an FirstActivity. Überprüfen Sie den booleschen Wert in FirstActivity, um zu entscheiden, welcher Fall ausgeführt wird.

Ein weiterer richtiger Weg:

Speicher ein boolean in dem SharedPreferences vom SecondActivity. Rufen Sie den booleschen Wert aus den SharedPreferences in der FirstActivity ab und überprüfen Sie den booleschen Wert, um zu entscheiden, welcher Fall ausgeführt wird.

0

Eine andere Möglichkeit besteht darin, eine benutzerdefinierte Touch-Listener-Klasse zu erstellen. Ich habe das für eine meiner Apps getan.

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; 

    } 
} 

Dann würden Sie rufen:

recyclerView.setOnTouchListener(new CustomTouchListener(this)); 
Verwandte Themen