2017-05-07 63 views
0

我有一個ListView,當我按住(長按)某個項目時,該項目將從列表中刪除。onTouch在LongTouch後立即註冊

它正在註冊一個接觸之後,而長時間的接觸仍在發生。

這裏是我的代碼 -

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       Intent intent = new Intent(getApplicationContext(), MapsActivity.class); 
       intent.putExtra("placeNumber", i); 
       intent.putExtra("Type", "Fav"); 

       startActivity(intent); 
      } 
     }); 

     listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
       Log.i("Removing", "" + favouriteLocations.get(position)); 
       favouriteLocations.remove(position); 
       Favourites.arrayAdapter.notifyDataSetChanged(); 
       return false; 
      } 

     }); 

讓長按一個「虛擬」觸摸在其中長觸摸了(一個新的項目已經在列表中向上移動)的項目出現的進去後和活動加載,就好像它已經被觸摸一樣。

它工作得很好,我確信我沒有更改代碼。有任何想法嗎?

謝謝。

+0

您將OnTouchListener設置爲整個ListView,而不是每個項目,這是您真正想要的嗎?也許會更容易通知OnItemLongClickListener內部的數據更改並刪除OnTouchListener。乾杯! – miibpa

+0

我對所有這些都是陌生的,所以如果我弄錯了,請原諒我,但我只是在那裏放置onTouchListener來檢測觸摸何時停止。我現在意識到任何觸摸現在會延遲一秒,對嗎?我現在編輯它。 – AndyCr15

回答

1

你從long click listner需要return true,你必須在XML有這個太android:longClickable="true"但列表視圖是可長按默認所以沒有必要在所有更新XML。

+0

太棒了。謝謝 :-) – AndyCr15

相關問題