📌  相关文章
📜  如何将一个侦听器应用于 Android 中的多个按钮?

📅  最后修改于: 2022-05-13 01:55:20.622000             🧑  作者: Mango

如何将一个侦听器应用于 Android 中的多个按钮?

在本文中,我们将编写一个短代码来在不同的按钮上应用点击事件,而不是为不同的按钮编写不同的方法,我们将只为所有存在的按钮构建一个onClick()方法,并使用这个概念在 switch case 中,我们可以通过不同的按钮执行不同的活动。现在,不浪费更多时间,让我们看看实现。

我们将在本文中构建什么?

在本文中,我们将开发一个包含三个按钮的示例应用程序,通过单击这三个按钮,我们可以仅使用一个onClick()方法来执行不同的操作。下面给出了一个示例视频,以了解我们将在本文中做什么。请注意,我们将使用Java语言来实现这个项目。

分步实施

第 1 步:创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。

步骤 2:使用 activity_main.xml 文件



现在是设计应用程序布局的时候了。因此,为此转到应用程序 >res > layout > activity_main.xml并将下面编写的代码粘贴到activity_main.xml文件中。

XML


      
      
    


Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
  
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  
    // creating three buttons 
      // by the of btn1, btn2,btn3
    Button btn1, btn2 ,btn3;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // connecting buttons with the 
          // layout using findViewById()
        btn1= findViewById(R.id.button);
        btn2= findViewById(R.id.button2);
        btn3= findViewById(R.id.button3);
  
        // apply setOnClickListener over buttons
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
  
  
    }
  
    // common onClick() for all buttons
    @Override
    public void onClick(View v) {
  
        switch (v.getId()){
  
            // cases applied over different buttons
            case R.id.button:
  
                // Toast message appears when button pressed
                Toast.makeText(this, "button1 pressed", Toast.LENGTH_SHORT).show();
                break;
              
            case R.id.button2:
  
                Toast.makeText(this, "button2 pressed", Toast.LENGTH_SHORT).show();
                break;
              
            case R.id.button3:
  
                Toast.makeText(this, "button3 pressed", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}


第 3 步:使用 MainActivity。 Java文件

转到应用程序 > Java > 包名称 > MainActivity。 Java文件,参考如下代码。下面是MainActivity的代码。 Java文件。代码中添加了注释以更详细地理解代码。

Java

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
  
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  
    // creating three buttons 
      // by the of btn1, btn2,btn3
    Button btn1, btn2 ,btn3;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // connecting buttons with the 
          // layout using findViewById()
        btn1= findViewById(R.id.button);
        btn2= findViewById(R.id.button2);
        btn3= findViewById(R.id.button3);
  
        // apply setOnClickListener over buttons
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
  
  
    }
  
    // common onClick() for all buttons
    @Override
    public void onClick(View v) {
  
        switch (v.getId()){
  
            // cases applied over different buttons
            case R.id.button:
  
                // Toast message appears when button pressed
                Toast.makeText(this, "button1 pressed", Toast.LENGTH_SHORT).show();
                break;
              
            case R.id.button2:
  
                Toast.makeText(this, "button2 pressed", Toast.LENGTH_SHORT).show();
                break;
              
            case R.id.button3:
  
                Toast.makeText(this, "button3 pressed", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

就是这样,现在应用程序已准备好安装在设备上。下面是应用程序的输出结果。

输出: