حتما تاکنون در برنامه های مختلف دیده اید که با کلیک بر روی یک دکمه، گزینه های مختلفی برای به اشتراک گذاری متن (مثل ارسال با پیامک یا بلوتوث) نمایش داده می شود. در ادامه آموزش برنامه نویسی اندروید یک برنامه می سازیم که اکتیویتی اصلی آن دارای یک دکمه (Button) است که با کلیک روی آن، یک متن برای اشتراک گذاری آماده می شود.
ابتدا یک پروژه با نام ShareText ایجاد کنید و داخل صفحه ی اصلی آن یک دکمه (Button) قرار دهید.
کد xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:gravity="center"> <Button android:id="@+id/btn_share_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ShareText" android:textSize="18sp"/> </LinearLayout>
یک لایه از نوع LinearLayout با طول و عرض match_parent ایجاد کرده و برای اینکه عناصر داخل این لایه وسط قرار گیرند gravity آن را center می کنیم. سپس داخل این لایه یک Button با طول و عرض wrap_content ایجاد کرده و برای آن یک متن با سایز مشخص ایجاد می کنیم.
کد Activity
import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button btn_share_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_share_text = findViewById(R.id.btn_share_text); btn_share_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT , "آموزش اندروید در شرکت پدیده تجارت"); startActivity(Intent.createChooser(intent, "اشتراک گذاری از طریق")); } }); } }
ابتدا یک Button تعریف کرده و آن را findViewById می کنیم، سپس برای آن setonClickListener می نویسیم.
داخل تابع onClick یک Intent از نوع SEND تعریف می کنیم (چون قرار است یک متن به اشتراک بگذاریم و ارسال کنیم) :
Intent intent = new Intent(Intent.ACTION_SEND);
حالا باید با استفاده از setType نوع اشتراک گذاری را مشخص کنیم. چون می خواهیم متن به اشتراک بگذاریم setType را روی text/plain قرار می دهیم:
intent.setType("text/plain");
با استفاده از putExtra متنی که می خواهیم به اشتراک بگذاریم را مشخص می کنیم:
intent.putExtra(Intent.EXTRA_TEXT , "آموزش اندروید در شرکت پدیده تجارت");
و در آخر می خواهیم به صفحه ای منتقل شویم که اسامی برنامه هایی که قابلیت اشتراک گذاری دارند را نمایش دهد و ما یکی از آن ها را برای اشتراک گذاری متن خود انتخاب کنیم.
برای اینکار ابتدا startActivity را نوشته و برای نمایش اسامی برنامه ها از createChooser استفاده می کنیم، همچنین یک عنوان مشخص می کنیم که این عنوان بالای اسامی برنامه ها نمایش داده میشود:
startActivity(Intent.createChooser(intent, "اشتراک گذاری از طریق"));
خروجی پروژه
با اجرای پروژه ابتدا با صفحه ی زیر روبرو میشوید