2012-06-29 42 views
5

我在Android的兩個按鈕。 Btn1和Btn2。我需要默認顯示BTN1且被點擊時我需要顯示BTN2到位BTN1的。當再次點擊 BTN2,應與BTN2取代。請幫我一些例子..按鈕在android中單擊操作?

我的代碼:

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




      } 

     }); 

在此先感謝

回答

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

      } 

     }); 
+0

請讓我們知道,如果所需的代碼...我認爲這很簡單,你會得到的onClick(視圖v)按鈕查看 –

+0

見我的代碼。默認情況下,第一BTN顯示的是,當我點擊它的第二BTN將與第一BTN當再次點擊第二BTN它將會消失,只有 第一BTN的剩餘一起顯示。但每次我想只有一個顯示btn.help我PLZ – user1448108

+0

肯定...... 2分鐘 –

0

您可以用同樣的精確位置佈局創建兩個按鈕,然後就可以設置的知名度和要

0

可以使用方法可見()來解決其知名度每個按鈕的作用。 ToggleButton或一個按鈕,並在點擊事件上切換文本應該比兩個按鈕更好地工作。

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); 
     } 
    }); 
相關問題