Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Java 安卓选择器_Java_Android_Selector - Fatal编程技术网

Java 安卓选择器

Java 安卓选择器,java,android,selector,Java,Android,Selector,我使用图库显示联系人的信息,在项目视图中,有两个按钮,我使用选择器作为背景,现在问题出在这里,我触摸这两个按钮的区域,这两个按钮将改变背景,好像它们都被按下了。 这是画廊的展品 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent

我使用图库显示联系人的信息,在项目视图中,有两个按钮,我使用选择器作为背景,现在问题出在这里,我触摸这两个按钮的区域,这两个按钮将改变背景,好像它们都被按下了。 这是画廊的展品

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#505050"
  >
  <ImageView 
    android:id="@+id/phone_contact_image"
    android:layout_height="160dip"
    android:layout_width="160dip"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="25dip"
    android:src="@drawable/contact_phone_image_1"
    />
  <TextView  
    android:id="@+id/phone_contact_name"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:textSize="25dip"
    android:layout_below="@id/phone_contact_image"
    android:layout_marginTop="10dip"
    android:gravity="center_horizontal"
    android:textColor="#FFFFFF"
    />
  <TextView
    android:id="@+id/phone_contact_numbler"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="25dip"
    android:gravity="center_horizontal"
    android:layout_below="@id/phone_contact_name"
    android:text="@string/contact_phone_numbler"
    android:textColor="#FFFFFF"
    />
  <Button 
    android:id="@+id/phone_contact_edit_btn"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="@string/editContact_title_edit"
    android:textSize="28dip"
    android:background="@drawable/btn_button_bg"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"
    android:layout_marginTop="10dip"
    android:textColor="#FFFFFF"
    android:layout_below="@id/phone_contact_numbler"
    />
  <Button 
    android:id="@+id/phone_contact_call_btn"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="@string/title_call_via"
    android:textSize="28dip"
    android:background="@drawable/btn_confirm_bg"
    android:layout_marginTop="20dip"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"
    android:textColor="#FFFFFF"
    android:layout_below="@id/phone_contact_edit_btn"
    />
</RelativeLayout>
这是选择器

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/btn_button_focus" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_button_pressed" />
    <item android:drawable="@drawable/btn_button_normal" />
</selector>

你说得对。但是你没有提到当状态没有被按下或者没有被聚焦或者没有被选择时,你会怎么做

试试这个: 在res.values文件夹中创建一个styles.xml文件 并添加它

 <style name="styleNormalButton">
        <item name="android:background">@drawable/backgroundbutton</item>
    </style>
最后输入你的layou文件。 将按钮的背景设置为style/styleNormalButton


希望这对你有帮助

我刚才试过了,似乎不起作用。我认为StaveEnLoad是为禁用程序做准备的,所以我忽略了它……我错过了什么EELS吗?看看是否还没有WOTKEN,去自下而上的方法。我的意思是将状态设置为聚焦并按下false,然后在那里设置默认背景。试试这个让我知道你是说这样吗?不工作。。。我为这个bug录制了一段视频,你会发现我绝对是一个不称职的cameramanset style/styleNormalButton两个按钮的背景。你尝试过下面建议的解决方案吗?嗨,我发现了一些新的线索,我没有使用背景。但是..你可能会看到,最终的解决方案是新的,一个类从Button扩展而来,并重写一个方法:@override public void setPressedboolean pressed{//如果按下父对象,则不要将其设置为pressed。如果按下&&View getParent.isPressed{return;}super.setPressedpressed;}
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/btn_button_focus" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_button_pressed"/>

    <item android:drawable="@drawable/btn_default_pressed_holo_dark"
      android:state_enabled="false" />
    <item android:drawable="@drawable/btn_button_normal" />
</selector>