安卓中的按钮点击事件?

5

我在安卓中有两个按钮,Btn1和Btn2。默认情况下需要显示Btn1,当Btn1被点击时需要在Btn1的位置上显示Btn2。再次点击Btn2后,它应该被替换为Btn1。请帮忙提供一些示例代码。

我的代码:

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);




            }

        });

提前感谢你的帮助。

4个回答

6

您可以使用同一个按钮并交替更改其标签,根据不同的级别,您可以放置检查并执行适当的工作。

根据您更新的代码,我们了解到您正在使用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);

            }

        });

请告知我们是否需要代码... 我认为这很简单,您将在onClick(View v)中获取按钮视图。 - Dheeresh Singh
看看我的代码。默认情况下,第一个按钮正在显示,当我点击它时,第二个按钮将与第一个按钮一起显示,当再次点击第二个按钮时,它将消失,只剩下第一个按钮。但每次我只想显示一个按钮。请帮帮我。 - user1448108

2

修改这个

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

            btn2.setVisibility(ImageView.GONE);
        }

    });

by

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

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

    });

并且这个

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

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

by

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

0

您可以在布局中创建两个具有完全相同位置的按钮,然后设置您想要的每个按钮的可见性和操作


0
可以使用visible()方法来修复其可见性。ToggleButton或一个按钮并在单击事件上切换文本应该比两个按钮更好用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接