如何在android中制作单选按钮?

如何在android中制作单选按钮?,android,button,onclick,viewgroup,buttongroup,Android,Button,Onclick,Viewgroup,Buttongroup,我是一个android编程的新手,正在尝试创建一个单选按钮组 比如说,, 在我的应用程序中有3个按钮,当一个按钮被点击时,其他的按钮应该被解锁 我怎样才能有效地做到这一点 给我一个提示:(比如我应该使用什么类或方法?你的意思是: Button myButton1; Button myButton2; Button myButton3; myButton1 = (Button) findViewById(R.id.button1); myButton1.setOnClickListener(n

我是一个android编程的新手,正在尝试创建一个单选按钮组

比如说,, 在我的应用程序中有3个按钮,当一个按钮被点击时,其他的按钮应该被解锁

我怎样才能有效地做到这一点

给我一个提示:(比如我应该使用什么类或方法?

你的意思是:

Button myButton1;
Button myButton2;
Button myButton3;

myButton1 = (Button) findViewById(R.id.button1);

myButton1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        myButton1.setBackgroundColor(Color.Green); 
        myButton2.setBackgroundColor(Color.Gray); 
        myButton3.setBackgroundColor(Color.Gray); 
    }
});

myButton2 = (Button) findViewById(R.id.button1);

myButton2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        myButton2.setBackgroundColor(Color.Green); 
        myButton1.setBackgroundColor(Color.Gray); 
        myButton3.setBackgroundColor(Color.Gray); 
    }
});

myButton3 = (Button) findViewById(R.id.button1);

myButton3.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        myButton3.setBackgroundColor(Color.Green); 
        myButton1.setBackgroundColor(Color.Gray); 
        myButton22.setBackgroundColor(Color.Gray); 
    }
});

试试这种方法,希望这能帮助你解决问题。

/drawable/radio_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="false"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="false"/>
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="true"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="true"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/black" android:state_checked="true" />
    <item android:color="@android:color/black" android:state_pressed="true"/>
    <item android:color="@android:color/white" />
</selector>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/darker_gray"
    android:gravity="center">

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio1"
            android:textColor="@drawable/radio_text_color_selector"
            android:checked="true"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio2"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio3"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        </RadioGroup>

</LinearLayout>

/drawable/radio\u text\u color\u selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="false"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="false"/>
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="true"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="true"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/black" android:state_checked="true" />
    <item android:color="@android:color/black" android:state_pressed="true"/>
    <item android:color="@android:color/white" />
</selector>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/darker_gray"
    android:gravity="center">

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio1"
            android:textColor="@drawable/radio_text_color_selector"
            android:checked="true"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio2"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio3"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        </RadioGroup>

</LinearLayout>

/layout/customradiobutton.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="false"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="false"/>
    <item android:drawable="@android:color/white" android:state_checked="true" android:state_pressed="true"/>
    <item android:drawable="@android:color/black" android:state_checked="false" android:state_pressed="true"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/black" android:state_checked="true" />
    <item android:color="@android:color/black" android:state_pressed="true"/>
    <item android:color="@android:color/white" />
</selector>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/darker_gray"
    android:gravity="center">

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio1"
            android:textColor="@drawable/radio_text_color_selector"
            android:checked="true"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio2"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@null"
            android:background="@drawable/radio_selector"
            android:text="Radio3"
            android:layout_marginLeft="5dp"
            android:textColor="@drawable/radio_text_color_selector"
            android:padding="10dp"/>
        </RadioGroup>

</LinearLayout>

我也不是经验丰富的开发人员。但答案取决于你想要实现什么。你可以使用andruboy提到的单选组,但就个人而言,我不喜欢单选按钮的外观,所以我经常使用如下按钮创建我自己的单选组

myButton1 = (ImageButton) findViewById(R.id.button1);
myBytton2 =  (ImageButton) findViewById(R.id.button2);
myBytton3 =  (ImageButton) findViewById(R.id.button3);
// this variable indicate which button was clicked as last, u can use this info for next action
int whichButtonClicked = 1;

myButton1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
     whichButtonClicked = 1;
     myButton1.setBackgroundColor(Color.Red);
     myButton2.setBackgroundColor(Color.Gray);
     myButton3.setBackgroundColor(Color.Gray);

}

});
myButton2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
     whichButtonClicked = 2;
     myButton1.setBackgroundColor(Color.Gray);
     myButton2.setBackgroundColor(Color.Red);
     myButton3.setBackgroundColor(Color.Gray);

}

});
对于第三个按钮,代码看起来类似

我从头开始写的,如果有什么东西不起作用,给我一个词,我会在以后测试它

我希望这个答案能帮助你满足你的需求