Java 获取列表视图的背景色
我需要多次更改listview的背景色,但我不知道如何在单击它之前获得listview的颜色 我有以下代码: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"))
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中选择时更改项目的颜色?您希望在选择中显示的是固定颜色吗?您可以