当我按ListView项目时,请保持突出显示[Android]



当我在2 o 3秒内选择列表视图的元素时,然后将手指移至其他元素并停止按下时,选定的第一个元素一直保持突出显示。我该如何修复???

谢谢!

我忘了说,使用的语言是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;
        }
    });

最新更新