Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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 - Fatal编程技术网

android中的按钮点击操作?

android中的按钮点击操作?,android,Android,我有两个安卓系统的按钮。Btn1和Btn2。我需要在默认情况下显示Btn1,当单击时,我需要显示Btn2代替Btn1。又当 单击Btn2时,应将其替换为Btn2。请帮我举个例子 我的代码: btn1 = (ImageView) findViewById(R.id.firstbtn); btn2 = (ImageView) findViewById(R.id.secondbutton); btn2.setVisibility(ImageView.GONE);

我有两个安卓系统的按钮。Btn1和Btn2。我需要在默认情况下显示Btn1,当单击时,我需要显示Btn2代替Btn1。又当 单击Btn2时,应将其替换为Btn2。请帮我举个例子

我的代码:

btn1 = (ImageView) findViewById(R.id.firstbtn);

        btn2 = (ImageView) findViewById(R.id.secondbutton);
        btn2.setVisibility(ImageView.GONE);

        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                btn2.setVisibility(ImageView.VISIBLE);
            }
        });

        btn2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                btn2.setVisibility(ImageView.GONE);




            }

        });

提前感谢

您可以使用同一按钮,交替更改其标签,并根据级别进行检查并执行相应的工作

根据您更新的代码,了解您正在使用ImageView,因此请尝试以下操作

   ImageView btn = (ImageView) findViewById(R.id.secondbutton);
    btn.setTag("1");//can use one empty String "" and null instead of "1" and "2" for optimization

        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Object obj = v.getTag();

                if(obj instanceof String){
                     if("1".equals(obj)){
                         v.setTag("2");
                         //Your first button state 
                     }else if("2".equals(obj)){
                         v.setTag("1");
                         //Your second button state 
                     }

                }

如果您的案例特定于两个按钮,则可以使用两个字符串比较操作

ImageView btn = (ImageView) findViewById(R.id.secondbutton);
  btn.setTag(null);

    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if(v.getTag() instanceof String){
                     v.setTag(null);
                     //Your first button state 
            } else {
                      v.setTag("");
                     //Your second button state 
            }
如果你想让你的代码正常工作

btn1 = (ImageView) findViewById(R.id.firstbtn);

        btn2 = (ImageView) findViewById(R.id.secondbutton);
        btn2.setVisibility(ImageView.GONE);

        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                v.setVisibility(ImageView.GONE);
                btn2.setVisibility(ImageView.VISIBLE);

            }
        });

        btn2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                v.setVisibility(ImageView.GONE);
                btn1.setVisibility(ImageView.VISIBLE);

            }

        });

您可以在布局中创建两个位置相同的按钮,然后可以设置所需每个按钮的可见性和操作

可以使用方法visible()来固定其可见性。切换按钮或一个按钮,并在单击事件时切换文本,应比两个按钮更有效。

更改此选项

btn2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            btn2.setVisibility(ImageView.GONE);
        }

    });

还有这个

 btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            btn2.setVisibility(View.VISIBLE);
        }
    });


请让我们知道是否需要代码。。。我认为这很简单,您将在onClick(视图v)中获得按钮视图,请参阅我的代码。默认情况下,第一个btn正在显示,当我单击它时,第二个btn将与第一个btn一起显示,当再次单击第二个btn时,它将消失,只剩下第一个btn。但每次我只想显示一个btn
 btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            btn2.setVisibility(View.VISIBLE);
        }
    });
  btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            btn1.setVisibility(View.GONE);
            btn2.setVisibility(View.VISIBLE);
        }
    });