Heim > Fragen und Antworten > Hauptteil
如题,电视盒子上的开发,只能通过焦点去控制
或者这么问:
并不是onItemSelected,而是这个操作已经进行了之后,焦点要离开ListView,这时候要更新已选中的Item的背景色,是在不知道怎么办
PHPz2017-04-17 15:25:13
我根据你的描述
1.你是不是想点击listview 的item时 设置被点击时的一瞬间的效果
2.还是像新闻一样点击了 记录所有被点击的item 改变颜色。
如何是前者就只要使用 再drawable 中创建XML 使用selector
后者的话 我也没做过这类的 不过我自己的思想是 你做个标记 根据标记改变item背景颜色 这个应该可以实现的
或者查看listview 是否提供了相应的方法
巴扎黑2017-04-17 15:25:13
listView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (v.getId() == R.id.listView && !hasFocus) {
//updateDatas()更新已选中的Item的背景色
adapter.updateDatas();
adapter.notifyDataSetChanged();
}
}
});
怪我咯2017-04-17 15:25:13
getListView().setOnKeyListener(this);
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// Make the newly clicked item the currently selected one.
if(event.getAction()==KeyEvent.ACTION_UP) {
int currentItemPosition = this.getSelectedItemPosition();
Log.d("stl", "onKey position: " + currentItemPosition);
//do what you want
}
return false;
}