2016-11-26 12 views
0

スワイプは2番目のアクティビティでは機能しません: 2つのアクティビティを作成し、swipe libraryを使用します。 最初のアクティビティはスワイプしますが、2番目のアクティビティはうまくいきません。コードの ここではいくつかの作品:スワイプは2番目のアクティビティでは機能しません

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) 
     } 
    } 
} 

第二の活動は、同じコードを持っているが、それはsecond_activityを命名しました。 最初のアクティビティでスワイプがうまくいき、2番目にリダイレクトされますが、スワイプしても機能しません!左にはない、右にはそうではありません。

私を助けることができますか?

第二アクティビティ:

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); 
     } 
} 
}) 
} 
} 

私はいくつかのメソッドの実装を削除。スワイプしようとすると何も起こりません。

+2

はmaxost @二活動 –

+0

のコードを表示してください、私はそれを行う –

答えて

1

私は使用しているライブラリの著者です。 dispatchTouchEvent(event)メソッドをオーバーライドして、どちらのアクティビティでもswipe.dispatchTouchEvent(event)メソッドを呼び出すことはできますか?コードスニペットでは言及していませんが、すべてを機能させる必要があります。

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

ライブラリ構成に関する3つのステップは、GitHubのREADME.mdファイルに記述されています。

よろしく、

ピョートル

+0

ありがとうございました!私はそれを逃す!私の失敗! –

+1

素晴らしい!私は将来、このような人間の間違いを避けるために、何らかの一般的なテストや単体テストのテストを考えています。 –

+0

、多分それはよい考えです。あなたの仕事をありがとう。 –

関連する問題