当我在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;
}
});