2011-10-07 96 views
4

我的佈局中有兩個ImageButton,「加號」和「減號」。 我在點擊功能中通過簡單的吐司消息將點擊偵聽器附加到「加號」按鈕上,並且它可以工作。處理多個按鈕點擊監聽器

ImageButton btplus = (ImageButton)findViewById(R.id.btplus);   
    btplus.setOnClickListener(new ImageButton.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), "+", Toast.LENGTH_SHORT); 
     } 
    }); 

然後附上第二次點擊收聽到負的ImageButton ...

ImageButton btminus = (ImageButton)findViewById(R.id.btminus); 
    btminus.setOnClickListener(new ImageButton.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), "-", Toast.LENGTH_SHORT); 
     } 
    }); 

...並沒有更多的點擊按鈕的作品! 「加號」點擊也停止工作。

我見過很多這個主題的例子,但我看不出他們(工作)和我的任何區別。

+4

只是改變ImageButton.onClickListener()來View.onClickListener(),並添加.show()結尾吐司法。 Like = Toast.makeText(getApplicationContext(),「 - 」,Toast.LENGTH_SHORT).show(); –

+0

@ChiragRaval你應該將其作爲答案發布。 – Audrius

+1

@Audrius感謝您的意見。我認爲如果通過添加簡單的評論來解決任何問題,那麼就不需要發佈答案。 –

回答

7
ImageButton btplus = (ImageButton)findViewById(R.id.btplus);   
    btplus.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), "+", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
+0

謝謝你,我瘋了一件很愚蠢的事! –

10

如多按鍵點擊listners ...

ImageButton btminus = (ImageButton)findViewById(R.id.btminus); 
btminus.setOnClickListener(this); 

ImageButton btplus = (ImageButton)findViewById(R.id.btplus); 
btplus.setOnClickListener(this); 

那麼你的活動要實現onclicklistener,你會得到實現的方法是:

public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.btplus: 
      Toast.makeText(getApplicationContext(), "Plus is clicked" + "+", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.btminus: 
      Toast.makeText(getApplicationContext(),"Minus is clicked" + "-", Toast.LENGTH_SHORT).show(); 
      break; 
     default: 
      break; 
     } 
    } 
+0

謝謝,我知道這種方法,但我更喜歡保持單獨的功能:我只需要「.show()」 –

1

註冊的onClick事件XML佈局,然後在代碼中處理它。這是我會怎麼做:

<Button 
android:id="@+id/btplus" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Click me" 
android:onClick="onBtnClicked"> 
</Button> 

方法的.class

public void onBtnClicked(View v) { 
     switch (v.getId()) { 
     case R.id.btplus: 
      Toast.makeText(getApplicationContext(), "Plus is clicked" + "+", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.btminus: 
      Toast.makeText(getApplicationContext(),"Minus is clicked" + "-", Toast.LENGTH_SHORT).show(); 
      break; 
     default: 
      break; 
     } 
    }