2017-05-30 81 views
0

當我在2 o 3秒內選擇我的ListView的元素,然後將手指移動到其他元素並停止按下時,所選的第一個元素始終保持高亮。我怎樣才能解決這個問題???當我按ListView項時保持高亮顯示[Android]

謝謝!!!

我忘記說了,用的是languaje科特林:

lvLevels.setOnItemClickListener { adapterView, v, i, l -> 
     Log.i(TAG, "${mapLevels[levelsNameList[i]]}") 
     GlobalStatus.level = mapLevels[levelsNameList[i]] 
     Log.i(TAG, "Prueba level -> ${GlobalStatus.level}") 
     GlobalStatus.levelNumber = i + 1 

     val intent = Intent([email protected], TheoryActivity::class.java) 
     startActivity(intent) 
    } 

的apdapter:

class LevelAdapter(context: Context?, levels: List<String>) : ArrayAdapter<String>(context, R.layout.listitem_levels, levels) { 

val TAG = javaClass.simpleName 
val levelsList: List<String> = levels 
private val LEVEL = " LEVEL " 

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { 
    val inflater = LayoutInflater.from(context) 
    var item: View? = convertView // !! 

    if (convertView == null) { 
     item = inflater.inflate(
       if (position < GlobalStatus.user!!.userLevel!!) { 
        R.layout.listitem_levels 
       } else { 
        R.layout.listitem_level_disable 
       }, 
       null 
     ) 
    } 

    item!!.lblLevelNumber.text = "$LEVEL ${(position + 1)}" 
    item.lblLevelDescription.text = levelsList[position] 

    return item 
} 

override fun isEnabled(position: Int) = (position < GlobalStatus.user!!.userLevel!!) 

}

+0

設置'cacheColorHint'到'transparent'。 – Wizard

回答

0

這聽起來像您使用的是onClickListener或onTouchListener處理你的觸摸事件。請從現在開始提供代碼。如果你提供了一些代碼,我會編輯它。

如果您使用的是onTouchListener,您可能應該是這樣,如果您的操作是MotionEvent.ACTION_DOWN,並且它是MotionEvent.ACTION_UP,則要確保返回「true」,您希望返回false。這個布爾值基本上說:「我關心未來的觸摸事件嗎?」。在這兩種情況下,您需要相應地設置您的背景。

0

試試下面的代碼:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
      //implement what ever you want 
      return true; 
     } 
    }); 
相關問題