如何处理Listeners未处理的点击?

时间:2017-12-02 12:40:43

标签: android onclick listener onclicklistener

到目前为止,我有一个带有几个按钮的应用程序。 如果点击当前onClick()按钮以外的其他内容,如何设置clickable事件? 在我的情况下:有一个教程,当你点击可以点击的可能按钮以外的东西时,我想弹出一条消息说“(现在不是clickable,请点击X”)。

1 个答案:

答案 0 :(得分:0)

每个View都可以收到一个onClick事件,可以通过监听器捕获。

如果您要执行的操作是侦听所有点击事件并在单击按钮时执行特定操作,并且对于任何其他获得点击的内容显示消息,您可以将活动设置为OnClickListener和然后检查哪个是被点击的视图。

public class MainActivity extends Activity implements View.OnClickListener{
    @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      View v = findViewById(R.id.top_most_view);
      v.setOnClickListener(this);
   }

   @Override
   public void onClick(View v){
       if(v.getId() == R.id.button1){
         // do something for the button
       }else if(v.getId == R.id.button2){
         // other button 
       }else{
         // Show the non clickable message
       }
   }

} 

R.id.top_most_view是布局最顶层视图的ID。例如,包含所有其他视图的LinearLayout。

在示例中,我只放了两个按钮,但您可以添加任意数量的按钮。您也可以使用开关而不是级联ifs。

代码可能有一些拼写错误,我没有测试它。但是你应该了解如何实现解决方案。