当我按ListView项时,请保持突出显示

当我在2 o 3秒内选择一个ListView的元素,然后将手指移动到其他元素并停止按下时,所选的第一个元素始终保持高亮。 我该如何解决这个问题?

谢谢!!!

我忘了说,使用的语言是Kotlin:

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(this@LevelsActivity, 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!!) 

}

这听起来像你使用onClickListener或onTouchListener来处理你的触摸事件。 请从现在开始提供代码。 如果你提供了一些代码,我会编辑这个。

如果你正在使用onTouchListener,你可能应该这样做,如果你的动作是MotionEvent.ACTION_DOWN,并且是MotionEvent.ACTION_UP,你想确保返回“true”,你想返回false。 这个布尔值基本上说“我关心未来的触摸事件吗?”。 在这两种情况下,你要相应地设置你的背景。

尝试下面的代码:

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