suchen

Heim  >  Fragen und Antworten  >  Hauptteil

android - ListView选中的Item在ListView获取焦点和没获取焦点时改变背景色?

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

或者这么问:

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

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

大家讲道理大家讲道理2772 Tage vor571

Antworte allen(5)Ich werde antworten

  • PHPz

    PHPz2017-04-17 15:25:13

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

    Antwort
    0
  • 阿神

    阿神2017-04-17 15:25:13

    listView.setOnItemSelectedListener

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:25:13

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

    Antwort
    0
  • 巴扎黑

    巴扎黑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();
                    }
                }
            });

    Antwort
    0
  • 怪我咯

    怪我咯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;
        }

    Antwort
    0
  • StornierenAntwort