اشتراک گذاری اطلاعات با استفاده از ActionProvider در اندروید
دوشنبه 12 بهمن 1394در این مقاله قصد داریم در مورد اشتراک گذاری مطالب صحبت نماییم، شاید برای شما هم پیش آمده باشد که بخواهید در application های خود یک سری داده را با استفاده از application هایی که دارید برای دیگران به اشتراک بگذارید در این مقاله در مورد این موضوع صحبت خواهیم کرد.
با استفاده از actionprovider می توانید اطلاعات خود را از جمله متن و تصاویر برای دیگران به اشتراک بگذارید، اندروید این کار را آسان کرده است اینکه با ایجاد یک منوی کوچک بالای صفحه بتوانید اطلاعات خود را نمایش دهید.
ابتدا باید یک منو ایجاد نمایید برای ایجاد منو داخل پوشه ی res باید یک پوشه به نام menu ایجاد نمایید و داخل آن از یک فایل xml استفاده کنید داخل فایل xml قطعه کد زیر را قرار دهید:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_item_share" android:showAsAction="ifRoom" android:title="اشتراک" android:actionProviderClass="android.widget.ShareActionProvider" /> </menu>
حالا داخل پوشه ی res خود باید activity مورد نظر را قرار دهید:
<RelativeLayout 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" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="178dp" android:text="مرجع تخصصی برنامه نویسان" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center"/> </RelativeLayout>
برای ایجاد منو باید از android.widget.shareactionprovider استفاده نماییم ، برای ایجاد منو متد OnCreateOptionMenu را نیاز داریم، که از منو یک آیتمی را تعریف می نماید.
از shareactionprovider یک شی به نام mshareactionprovider می سازیم، اطلاعات را واکشی می کنیم و داخل shareactionprovider ذخیره می نماییم، و اگر مقدار بازگشتی true باشد منوها نمایش داده می شود.
حالا برای اینکه متن و یا تصویر مورد نظر را بخواهیم ارسال نماییم و به اشتراک بگذاریم باید یک intent ایجاد نماییم و نوع و مقدار مورد نظر را ارسال نماییم.
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ShareActionProvider; public class MyActivity extends Activity { private ShareActionProvider mShareActionProvider; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate menu resource file. getMenuInflater().inflate(R.menu.main, menu); // Locate MenuItem with ShareActionProvider MenuItem item = menu.findItem(R.id.menu_item_share); // Fetch and store ShareActionProvider mShareActionProvider = (ShareActionProvider) item.getActionProvider(); setShareIntent(createShareIntent()); // Return true to display menu return true; } // Call to update the share intent private void setShareIntent(Intent shareIntent) { if (mShareActionProvider != null) { mShareActionProvider.setShareIntent(shareIntent); } } private Intent createShareIntent() { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, "http://www.barnamenevisan.org"); return shareIntent; } }
در نهایت خروجی به صورت زیر خواهد بود:
- Android
- 1k بازدید
- 3 تشکر