保持按钮处于按下状态

时间:2013-12-30 11:57:17

标签: android

我是我的应用程序,我必须创建一组按钮。说 button1& BUTTON2

要求:

单击按钮时,它应保持按下状态。 一次只能按一个按钮。也就是说,如果button1处于按下状态&单击button2,然后应该按下Button1并更改button2以保持按下状态。

我有2个抽屉,一个用于压制和放一个是未压抑的。但是我应该如何编写我的选择器呢? 而且,我在java代码中需要做哪些更改?

我尝试使用复选框按钮,但我的drawables包含layer-list,这就产生了问题。

谢谢

5 个答案:

答案 0 :(得分:1)

似乎是RadioButton的经典实现。确保在同一个RadioGroup中使用它们,你就可以了!

答案 1 :(得分:1)

尝试这样:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item 
    android:state_selected="true" 
    android:drawable="@drawable/selected_image" />
<item 
    android:drawable="@drawable/unselected_image" />

当按下第一个按钮然后选择 true 并选择第二个按钮 false 并按下第二个按钮时签证。

答案 2 :(得分:1)

您可以尝试切换按钮或切换小部件(仅适用于更高版本) 否则可以尝试以下代码: -

Button button1;
    Button button2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button1.setOnTouchListener(new OnTouchListener() {



            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
                // TODO Auto-generated method stub
                button1.setPressed(true);
                button2.setPressed(false);
                return true;
            }
        });
        button2.setOnTouchListener(new OnTouchListener() {



            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
                // TODO Auto-generated method stub
                button2.setPressed(true);
                button1.setPressed(false);
                return true;
            }
        });
    }

答案 3 :(得分:0)

如何在每次点击时使用图像视图和更改绘图。

答案 4 :(得分:0)

您可以使用以下方式执行此操作:

button1.setEnabled(false);

例如 -

    button1 = (Button) findViewById(R.id.button1);
    button1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            button1.setEnabled(false);
            button2.setEnabled(true);
            //do something
        }
    });
    button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            button2.setEnabled(false);
            button1.setEnabled(true);
            //do something 
        }
    });