选择列表项时更改按钮的颜色

change color of button when list item is selected

我正在 activity 中处理列表视图,我希望每当我长按任何列表项时,操作栏上的按钮都会更改其颜色,就像假设的一样“ i select 列表项操作栏上的按钮从白色变为灰色 .

   listView.setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // changes the color button ;
            return false;
        }
    });

或者有其他方法可以做到这一点。

我没有足够的声誉来 post 图片首先它看起来像 Before selecting any item and its looks like thisWhen item is long pressed or selected 希望你理解我的问题, 提前致谢

编辑:原问题被误解:

int mPosition = -1;   

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

    public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int pos, long id) {

        if(mPosition!=-1) {
            //reset color of previously pressed item to white
            lv.getChildAt(mPosition).setBackgroundColor(Color.WHITE);
        }
        //set current item to fray.
        lv.getChildAt(pos).setBackgroundColor(Color.GRAY);
        //put value of currently selected item to mPosition.
        mPosition = pos;

        return true;
    }
});

下面是旧答案:

将此添加到您的方法中。

Button button1 = (Button)findViewById(R.id.button1);
if(this condition){
    button1.setBackgroundColor(Color.GRAY);
}else{
    //whatever.. 
}

This answer 涵盖相同的原则,但使用资源更详细。

您可以在使用

选择时为列表项赋予颜色

android:listSelector="@color/AnyColor" 在 .xml 文件中.. 见编码

<ListView
    android:id="@+id/nameOfYourListview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_margin="10dp"
    android:background="AnyYouWant"
   <!--code for color the selected item --> android:listSelector="ColorHereWhichYouWant" >
</ListView>