在listview某一项获取焦点时更换当前条目的背景颜色
前提有两个:
listview中的item不能设置background,否则view不会显示出来
listview不能设置focuseable(false),否则View不能显示出来。
实现方式有两种
1,设置selector
listView.setSelector();
2,设置onItemSelectedListener
然后再onItemSelected()函数中为view设置onFocusChangeListener
同样的,listView中的Item不能设置backGround
focusChangeListener = new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus)
{
v.setBackgroundColor(Color.BLUE);
} else
{
v.setBackgroundColor(Color.RED);
}
}
};
selectedListener = new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
view.setOnFocusChangeListener(focusChangeListener);
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
}
};
listView.setOnItemSelectedListener(selectedListener);