android - ListView选中的Item在ListView获取焦点和没获取焦点时改变背景色?
大家讲道理
大家讲道理 2017-04-17 15:23:13
0
5
575

如题,电视盒子上的开发,只能通过焦点去控制

或者这么问:

如何在程序中获取当前ListView选中的Item的position?

并不是onItemSelected,而是这个操作已经进行了之后,焦点要离开ListView,这时候要更新已选中的Item的背景色,是在不知道怎么办

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(5)
PHPzhong

我根据你的描述
1.你是不是想点击listview 的item时 设置被点击时的一瞬间的效果
2.还是像新闻一样点击了 记录所有被点击的item 改变颜色。
如何是前者就只要使用 再drawable 中创建XML 使用selector
后者的话 我也没做过这类的 不过我自己的思想是 你做个标记 根据标记改变item背景颜色 这个应该可以实现的
或者查看listview 是否提供了相应的方法

阿神

listView.setOnItemSelectedListener

巴扎黑

不是有 state_focused 吗?这个有试过吗?

巴扎黑
  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();
                }
            }
        });
刘奇
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;
    }
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿