📜  如何在Android的工具栏中添加共享按钮?

📅  最后修改于: 2021-05-13 17:22:00             🧑  作者: Mango

在本文中,我们将在Android的工具栏中创建一个简单的共享按钮。共享按钮用于将邮件,蓝牙,Facebook,Twitter,WhatsApp等上的信息共享给任何社交媒体上的个人或团体。我们可以共享任何类型的消息,例如文本,图像,视频,链接等。请注意,我们使用Java作为编程语言。下面提供了一个示例视频,以了解我们将在此项目中进行的操作。

分步实施

步骤1:创建一个新项目

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

步骤2:建立新的Android资源目录

转到res文件夹右键单击它 并按照下图所示的步骤创建一个新的Android资源目录。

现在,右键单击“ Android资源目录”,将打开一个新选项卡。如下所示:

给您的目录命名,然后单击“确定”。创建一个新的Android资源目录。

步骤3:创建菜单资源文件

转到菜单目录,右键单击它,然后按照下面给出的图像进行操作:

现在,右键单击“菜单资源目录”,然后如下图所示进行操作:

为您的文件命名,然后单击“确定”。新的菜单资源文件已创建。

步骤4:建立图示

导航到res> drawable。现在,右键单击可绘制文件夹,然后按照以下图像进行操作:

现在右键单击 Vector Asset并执行如下所示:

i)通过单击剪贴画选择图标,然后搜索图标共享。

如果要为图标提供一些名称,请在“名称”中写入,否则将生成默认名称。

ii)通过单击颜色选项为图标选择一种颜色

单击选择,然后下一步并完成,您的图标已创建。此处默认提供ic_baseline_share_24

步骤5:使用main_menu.xml

导航到res>菜单> main_menu.xml,然后将以下代码添加到该文件中。

XML


  
    
    
  


XML


  
    
  


Java
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
  
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
  
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
  
        getMenuInflater().inflate(R.menu.main_menu, menu);
          
        // first parameter is the file for icon and second one is menu   
        return super.onCreateOptionsMenu(menu);
    }
  
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        // We are using switch case because multiple icons can be kept
        switch (item.getItemId()) {
            case R.id.shareButton:
                  
                Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                  
                // type of the content to be shared
                sharingIntent.setType("text/plain");
                  
                // Body of the content
                String shareBody = "Your Body Here";
                  
                // subject of the content. you can share anything
                String shareSubject = "Your Subject Here";
                  
                // passing body of the content 
                sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
                  
                // passing subject of the content
                sharingIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubject);
                startActivity(Intent.createChooser(sharingIntent, "Share using"));
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}


步骤6:使用activity_main.xml文件

导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。

XML格式



  
    
  

第7步:使用 主要活动。 Java文件

转到MainActivity。 Java文件并添加下面给出的代码。我们在这里实现了两个方法public boolean onCreateOptionsMenu()public boolean onOptionsItemSelected() 。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
  
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
  
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
  
        getMenuInflater().inflate(R.menu.main_menu, menu);
          
        // first parameter is the file for icon and second one is menu   
        return super.onCreateOptionsMenu(menu);
    }
  
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        // We are using switch case because multiple icons can be kept
        switch (item.getItemId()) {
            case R.id.shareButton:
                  
                Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                  
                // type of the content to be shared
                sharingIntent.setType("text/plain");
                  
                // Body of the content
                String shareBody = "Your Body Here";
                  
                // subject of the content. you can share anything
                String shareSubject = "Your Subject Here";
                  
                // passing body of the content 
                sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
                  
                // passing subject of the content
                sharingIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubject);
                startActivity(Intent.createChooser(sharingIntent, "Share using"));
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}

输出:

您可以使用任何媒体,例如Facebook,WhatsApp,电子邮件,消息传递,蓝牙等来共享您的消息。