Java 获取列表视图的背景色

Java 获取列表视图的背景色,java,android,listview,colors,Java,Android,Listview,Colors,我需要多次更改listview的背景色,但我不知道如何在单击它之前获得listview的颜色 我有以下代码: if(colores.get(i).equals("0")) { listView.getChildAt(i).setBackgroundColor(Color.GREEN); } else if(colores.get(i).equals("1"))

我需要多次更改listview的背景色,但我不知道如何在单击它之前获得listview的颜色

我有以下代码:

if(colores.get(i).equals("0"))
                {
                    listView.getChildAt(i).setBackgroundColor(Color.GREEN);
                }
                else if(colores.get(i).equals("1"))
                {
                    listView.getChildAt(i).setBackgroundColor(Color.RED);
                }
                else if(colores.get(i).equals("2"))
                {
                    listView.getChildAt(i).setBackgroundColor(Color.YELLOW);
                }
                else
                {
                    listView.getChildAt(i).setBackgroundColor(Color.WHITE);
                }
我可以改变颜色,但是当我点击listview的一个项目时,我也需要改变颜色,但是我不知道如何知道它以前的颜色


有人能帮我吗?谢谢!:)

执行此操作:更改颜色,然后创建处理程序。另外,将视图设置为最终视图。您可以根据它是什么子级,或者换句话说,根据项的位置执行if/else语句或switch语句

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            view.setBackgroundColor(Color.RED); //on click change to red

            Handler handler = new Handler();
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    view.setBackgroundColor(Color.WHITE); //after click changes to white
                }
            };

            handler.postDelayed(runnable, 200); //change to white after 200ms
        }
    });

    //DO THIS BELOW FOR SPECIFIC ITEM IN LISTVIEW

private final String currentColor_P1; //current background color for item at position 1

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            if (position == 1) {
                view.setBackgroundColor(Color.BLUE);
            } else if (position == 2) {
                view.setBackgroundColor(Color.YELLOW);
            } else {
                view.setBackgroundColor(Color.RED);
            }

            //OR check for position and check for the known color that you have set for that position
            if(position == 1 && currentColor_P1 == BLUE) {
                 view.setBackgroundColor(Color.YELLOW);

            } else if(position == 1 && currentColor_P1 == RED) {
                 view.setBackgroundColor(Color.YELLOW);
            }

            //Change color to whatever after clicked and after initial color change happened
            Handler handler = new Handler();
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    view.setBackgroundColor(Color.WHITE);

                    //or 
                    if(position == 1){
                         view.setBackgroundColor(Color.BLUE)
                         currentColor_P1 = "BLUE"; //now you set the current backgound for item at position 1 to "blue"
                    }



                }
            };

            handler.postDelayed(runnable, 200);
        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、最终视图、整型位置、长id){
view.setBackgroundColor(Color.RED);//单击“更改为红色”
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
view.setBackgroundColor(Color.WHITE);//单击后更改为白色
}
};
handler.postDelayed(runnable,200);//200ms后变为白色
}
});
//对LISTVIEW中的特定项目执行以下操作
私有最终字符串currentColor_P1//位置1处项目的当前背景色
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、最终视图、整型位置、长id){
如果(位置==1){
视图。setBackgroundColor(颜色。蓝色);
}否则如果(位置==2){
视图.setBackgroundColor(颜色.黄色);
}否则{
视图.setBackgroundColor(颜色.红色);
}
//或者检查位置并检查为该位置设置的已知颜色
如果(位置==1&¤tColor\u P1==蓝色){
视图.setBackgroundColor(颜色.黄色);
}else if(位置==1&¤tColor\u P1==红色){
视图.setBackgroundColor(颜色.黄色);
}
//单击后和发生初始颜色更改后,将颜色更改为任意颜色
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
视图.setBackgroundColor(颜色.白色);
//或
如果(位置==1){
view.setBackgroundColor(颜色:蓝色)
currentColor_P1=“蓝色”;//现在您将位置1处的项目的当前背景设置为“蓝色”
}
}
};
handler.postDelayed(可运行,200);
}
});

执行以下操作:更改颜色,然后创建处理程序。另外,将视图设置为最终视图。您可以根据它是什么子级,或者换句话说,根据项的位置执行if/else语句或switch语句

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            view.setBackgroundColor(Color.RED); //on click change to red

            Handler handler = new Handler();
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    view.setBackgroundColor(Color.WHITE); //after click changes to white
                }
            };

            handler.postDelayed(runnable, 200); //change to white after 200ms
        }
    });

    //DO THIS BELOW FOR SPECIFIC ITEM IN LISTVIEW

private final String currentColor_P1; //current background color for item at position 1

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            if (position == 1) {
                view.setBackgroundColor(Color.BLUE);
            } else if (position == 2) {
                view.setBackgroundColor(Color.YELLOW);
            } else {
                view.setBackgroundColor(Color.RED);
            }

            //OR check for position and check for the known color that you have set for that position
            if(position == 1 && currentColor_P1 == BLUE) {
                 view.setBackgroundColor(Color.YELLOW);

            } else if(position == 1 && currentColor_P1 == RED) {
                 view.setBackgroundColor(Color.YELLOW);
            }

            //Change color to whatever after clicked and after initial color change happened
            Handler handler = new Handler();
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    view.setBackgroundColor(Color.WHITE);

                    //or 
                    if(position == 1){
                         view.setBackgroundColor(Color.BLUE)
                         currentColor_P1 = "BLUE"; //now you set the current backgound for item at position 1 to "blue"
                    }



                }
            };

            handler.postDelayed(runnable, 200);
        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、最终视图、整型位置、长id){
view.setBackgroundColor(Color.RED);//单击“更改为红色”
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
view.setBackgroundColor(Color.WHITE);//单击后更改为白色
}
};
handler.postDelayed(runnable,200);//200ms后变为白色
}
});
//对LISTVIEW中的特定项目执行以下操作
私有最终字符串currentColor_P1//位置1处项目的当前背景色
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、最终视图、整型位置、长id){
如果(位置==1){
视图。setBackgroundColor(颜色。蓝色);
}否则如果(位置==2){
视图.setBackgroundColor(颜色.黄色);
}否则{
视图.setBackgroundColor(颜色.红色);
}
//或者检查位置并检查为该位置设置的已知颜色
如果(位置==1&¤tColor\u P1==蓝色){
视图.setBackgroundColor(颜色.黄色);
}else if(位置==1&¤tColor\u P1==红色){
视图.setBackgroundColor(颜色.黄色);
}
//单击后和发生初始颜色更改后,将颜色更改为任意颜色
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
视图.setBackgroundColor(颜色.白色);
//或
如果(位置==1){
view.setBackgroundColor(颜色:蓝色)
currentColor_P1=“蓝色”;//现在您将位置1处的项目的当前背景设置为“蓝色”
}
}
};
handler.postDelayed(可运行,200);
}
});

在listview中选择时是否要更改项目的颜色?您希望在选择时显示的是固定颜色吗?您也可以在listview适配器中处理,这将更容易,每个listview项中都有什么?它只是字符串吗?我有字符串,当我单击它时,字符串不会改变文本,这没关系。我需要根据它以前的颜色来更改颜色,例如,如果它是红色,那么它必须是蓝色。是否要在listview中选择时更改项目的颜色?您希望在选择中显示的是固定颜色吗?您可以