Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中通过编程方式更改布局的背景色_Android_Android Layout_Android Linearlayout - Fatal编程技术网

在android中通过编程方式更改布局的背景色

在android中通过编程方式更改布局的背景色,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我必须开发一个android应用程序 我必须在正常状态下显示背景色为#424340。但我必须单击这些布局(选择并按下状态)意味着必须更改背景色为#FF0000。如何以编程方式执行…请为我提供解决方案 我使用以下代码以编程方式创建布局: LinearLayout ar = new LinearLayout(this); ar.setOrientation(LinearLayout.VERTICAL); ar.setPadding(3, 3, 3, 3

我必须开发一个android应用程序

我必须在正常状态下显示背景色为#424340。但我必须单击这些布局(选择并按下状态)意味着必须更改背景色为#FF0000。如何以编程方式执行…请为我提供解决方案

我使用以下代码以编程方式创建布局:

LinearLayout ar = new LinearLayout(this);
            ar.setOrientation(LinearLayout.VERTICAL);
            ar.setPadding(3, 3, 3, 3);

            ar.setLayoutParams(artiLayoutParams);
            ar.setGravity(Gravity.CENTER); 
            ar.setBackgroundDrawable(getResources().getDrawable(R.drawable.list_selector));
在这里我必须点击这些布局意味着改变背景颜色。所以我已经使用下面的代码。请检查它

列表选择器.xml:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 

 android:state_selected="false"
 android:state_pressed="false" 
android:state_focused="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:state_selected="true" 
android:state_focused="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>
    <?xml version="1.0" encoding="utf-8"?>



  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <stroke android:width="3dp" android:color="#424340" />

        <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />
        <corners android:radius="4dp" />
    </shape>
    <?xml version="1.0" encoding="utf-8"?>

  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

        <stroke android:width="3dp" android:color="#FF0000" />
         <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />

        <corners android:radius="4dp" />
        </shape> 

gradient\u bg.xml:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 

 android:state_selected="false"
 android:state_pressed="false" 
android:state_focused="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:state_selected="true" 
android:state_focused="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>
    <?xml version="1.0" encoding="utf-8"?>



  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <stroke android:width="3dp" android:color="#424340" />

        <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />
        <corners android:radius="4dp" />
    </shape>
    <?xml version="1.0" encoding="utf-8"?>

  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

        <stroke android:width="3dp" android:color="#FF0000" />
         <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />

        <corners android:radius="4dp" />
        </shape> 

gradient\u bg\u hover.xml:

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 

 android:state_selected="false"
 android:state_pressed="false" 
android:state_focused="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:state_selected="true" 
android:state_focused="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>
    <?xml version="1.0" encoding="utf-8"?>



  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <stroke android:width="3dp" android:color="#424340" />

        <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />
        <corners android:radius="4dp" />
    </shape>
    <?xml version="1.0" encoding="utf-8"?>

  <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

        <stroke android:width="3dp" android:color="#FF0000" />
         <padding android:left="3dp" android:top="3dp" android:right="3dp"
            android:bottom="3dp" />

        <corners android:radius="4dp" />
        </shape> 


但是我的背景色没有改变。我的代码有什么问题。请帮我…

你的州好像错了。你能试试这个来确认它是否有效吗

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Selector style for listrow -->
 <item 
 android:state_pressed="false"
android:drawable="@drawable/gradient_bg" />
<item android:state_pressed="true"
android:drawable="@drawable/gradient_bg_hover" />
 </selector>

no ya..现在也只有同样的问题了。如果我必须按那个布局,意味着背景色没有改变。。。