2011-10-07 95 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; 
     } 
    }