2017-05-30 14 views
0

ListViewの要素を2 o 3秒間選択した後、他の要素に指を移動して押した場合、最初に選択した要素が常にハイライト表示されます。どうすればこの問題を解決できますか?ListViewアイテムを押したままにしておきます[Android]

ありがとうございます!

私が言うのを忘れて、使用languajeは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([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の場合はtrueを返し、MotionEvent.ACTION_UPの場合はfalseを返すようにします。このブール値は、基本的に「今後のタッチイベントを気にしますか?」と述べています。これらの2つの条件の中で、背景を適切に設定する必要があります。

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; 
     } 
    }); 
関連する問題