2016-11-26 5 views
0

Swipe funktioniert nicht in der zweiten Aktivität: Ich erstellen zwei Aktivitäten und verwenden swipe library. Erste Aktivität wischt gut, aber zweite funktioniert nicht. Hier einige Stück Code:Swipe funktioniert nicht in der zweiten Aktivität

private var _swipe: Swipe = Swipe(); 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_1) 
    _swipe.addListener(object :SwipeListener { 
     override fun onSwipedLeft(event: MotionEvent?) { 
      val intent = Intent([email protected],SecondActivity::class.java) 
      startActivity(intent) 
     } 
    } 
} 

Die zweite Aktivität haben den gleichen Code, aber es genannt second_activity. Swipe in der ersten Aktivität funktioniert gut, es umgeleitet zu Sekunde, aber dann Swipe does'n work! Nicht nach links, nicht nach rechts und so weiter.

Können Sie mir helfen?

Zweite Aktivität:

public class SecondActivity : MvpActivity<ISecondView, SecondPresenter> (),ISecondView { 

private var _manager: PlayerManager = PlayerManager(); 
/** 
* Instantiate a presenter instance 

* @return The [MvpPresenter] for this view 
*/ 
override fun createPresenter(): SelectPresenter { 
    return SecondPresenter(_manager); 
} 

private var _swipe: Swipe = Swipe(); 
override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_select_2) 

    val realm = Realm.getDefaultInstance() 

    val players = realm.where(Player::class.java).findAll() 


    val arrayList = ArrayList<String>(players.size) 
    for (player in players) { 

      arrayList.add(player.Name);    
    } 


    val adapter = ArrayAdapter(applicationContext, android.R.layout.simple_list_item_checked, arrayList) 

    val lvArr = findViewById(R.id.ListView) as ListView; 
    lvArr.choiceMode= ListView.CHOICE_MODE_SINGLE; 
    lvArr.adapter = adapter 

    lvArr.setOnItemClickListener { adapterView: AdapterView<*>, view1: View, i: Int, l: Long -> 
     //select elem 
    } 

    _swipe.addListener(object : SwipeListener {   
     override fun onSwipedLeft(event: MotionEvent?) { 
      Toast.makeText(applicationContext, "swiped left", Toast.LENGTH_SHORT).show(); 
      val intent= Intent([email protected],ThirdActivity::class.java); 
      startActivity(intent); 
     } 

     override fun onSwipingLeft(event: MotionEvent?) { 
      Toast.makeText(applicationContext, "swiping left", Toast.LENGTH_SHORT).show(); 
      val intent= Intent([email protected],ThirdActivity::class.java); 
      startActivity(intent); 
     } 
} 
}) 
} 
} 

ich einige Methoden Implementierungen entfernen. Wenn ich wische, passiert nichts.

+2

bitte Code der zweiten Aktivität –

+0

@ maxost zeigen, ich tue es –

Antwort

1

Ich bin ein Autor der Bibliothek, die Sie verwenden. Sind Sie sicher, dass Sie die Methode dispatchTouchEvent(event) überschreiben und in beiden Aktivitäten eine Methode swipe.dispatchTouchEvent(event) aufrufen? Sie haben es nicht in den Code-Snippets erwähnt, aber es ist erforderlich, damit alles funktioniert.

override fun dispatchTouchEvent(event: MotionEvent): Boolean { 
    (swipe as Swipe).dispatchTouchEvent(event) 
    return super.dispatchTouchEvent(event) 
    } 

3 Schritte in Bezug auf Bibliothekskonfiguration sind in README.md Datei auf GitHub beschrieben.

Grüße,

Piotr

+0

Vielen Dank! ich vermisse es! Mein Fehler! –

+1

Großartig! Vielleicht denke ich an generische oder exemplarische Unit-Tests, um solche menschlichen Fehler in Zukunft zu vermeiden. –

+0

, vielleicht wird es eine gute Idee sein. Danke für deine Arbeit. –

Verwandte Themen