Как добавить кнопку «Поделиться» на панель инструментов Android?

Опубликовано: 4 Сентября, 2022

В этой статье мы создадим простую кнопку «Поделиться» на панели инструментов Android. Кнопка «Поделиться» используется для обмена информацией по почте, Bluetooth, 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 > menu > main_menu.xml и добавьте приведенный ниже код в этот файл.

XML




<?xml version="1.0" encoding="utf-8"?>
  
    <!--we are using  app:showAsAction="ifRoom" so that share
        button is added in toolbar. -->
    <item
        android:id="@+id/shareButton"
        android:icon="@drawable/ic_baseline_share_24"
        android:title="SHARE"
        app:showAsAction="ifRoom" />
  
</menu>

Шаг 6: Работа с файлом activity_main.xml

Перейдите к app > res > layout > activity_main.xml и добавьте приведенный ниже код в этот файл. Ниже приведен код файла activity_main.xml .

XML




<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello GFG !!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Шаг 7: Работа с Файл MainActivity.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, электронная почта, обмен сообщениями, Bluetooth и т. д., чтобы поделиться своим сообщением.