我正在使用列表视图的适配器进行编程,并且我希望它在用户触摸列表视图元素时保持突出显示。我成功使用了下面的代码。但是由于 android 回收了布局以获得流畅的性能,当我单击第 1 行时,第 11、21、31 行等也会突出显示。然后,如果我向下滚动,则不再选择第 1 行,但会突出显示第 4、14、24 行等。这是我使用的代码
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.row, collection);
onelist.setAdapter(arrayAdapter);
onelist.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
str1 = (String)onelist.getItemAtPosition(position);
str1 = str1.toLowerCase();
Toast.makeText(context, str1 + " clicked in Fragment " + fragmentNo, Toast.LENGTH_LONG).show();
if(lastColored != null)
{
lastColored.setBackgroundColor(Color.TRANSPARENT);
lastColored.invalidate();
}
lastColored = v;
v.setBackgroundColor(Color.rgb(51, 181, 229));
};
});