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

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

或者这么问:

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

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

大家讲道理
大家讲道理

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

répondre à tous(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;
    }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal