5

Androidには2つのボタンがあります。Btn1 と Btn2。デフォルトで Btn1 を表示する必要があり、クリックすると Btn1 の代わりに Btn2 を表示する必要があります。ここでも 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);




            }

        });

前もって感謝します

4

4 に答える 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 
                     }

                }

...

ケースが2つのボタンに固有の場合、2つの文字列比較操作を使用できます

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

            }

        });
于 2012-06-29T06:47:03.193 に答える
2

これを変える

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

            btn2.setVisibility(ImageView.GONE);
        }

    });

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

  btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            btn1.setVisibility(View.GONE);
            btn2.setVisibility(View.VISIBLE);
        }
    });
于 2012-06-29T07:02:35.047 に答える
0

正確に同じ位置のレイアウトに 2 つのボタンを作成し、必要な各ボタンの可視性とアクションを設定できます。

于 2012-06-29T06:50:30.553 に答える
0

メソッド visible() を使用して可視性を修正できます。ToggleButton または 1 つのボタンと、クリック イベントでのテキストの切り替えは、2 つのボタンよりもうまく機能するはずです。

于 2012-06-29T06:50:44.530 に答える