当我按下ListView项目时,请高亮显示[Android]

时间:2017-05-30 12:08:56

标签: android list listview view

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

}

2 个答案:

答案 0 :(得分:0)

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

如果你正在使用onTouchListener,你可能应该这样做,你想确保返回&#34; true&#34;如果您的操作是MotionEvent.ACTION_DOWN,并且它是MotionEvent.ACTION_UP,则您希望返回false。这个布尔值基本上表示&#34;我是否关心未来的触摸事件?&#34;。在这两个条件中,您需要相应地设置背景。

答案 1 :(得分:0)

尝试以下代码:

[HttpGet]
public IHttpActionResult GetMyTable(byte id, string langid)
{
    var mytable = db.MyTables.Find(id, langid);

    if (mytable  != null)
    {
        return Ok(mytable);
    }

    return NotFound();
}