به اشتراک گذاری متن، در برنامه نویسی اندروید
به اشتراک گذاری متن، در برنامه نویسی اندروید
در این آموزش، چگونگی به اشتراک گذاری یک متن را شرح خواهیم داد. حتما تاکنون در برنامه های مختلف دیده اید که با اشاره بر روی یک دکمه (button)، گزینه های مختلفی برای به اشتراک گذاری متن (مثل ارسال با پیامک یا bluetooth) نمایش داده می شود، مثل شکل زیر :
در ادامه یک برنامه اندروید می سازیم که activity اصلی آن دارای یک دکمه (button) است که اگر بر روی آن دکمه اشاره کنیم، یک متن، برای اشتراک گذاری آماده می شود.
در برنامه eclipse ، ابتدا یک پروژه اندروید با نام iran-eng.com_ShareText بسازید (نام package را برابر com.iran-eng.sharetext انتخاب کنید. نام activity اصلی را برابر MainActivity انتخاب کنید و فایل xml متناظر آن را هم، activity_main انتخاب کنید).
ابتدا فایل activity_main.xml را باز می کنیم :
ظاهر گرافیکی آن به صورت زیر می باشد (به طور پیش فرض دارای یک TextView است) :
و کدهای آن به صورت زیر است :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]RelativeLayout xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
xmlns[COLOR=#339933]:[/COLOR]tools[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/tools"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingBottom[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingLeft[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingRight[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingTop[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
tools[COLOR=#339933]:[/COLOR]context[COLOR=#339933]=[/COLOR][COLOR=#0000FF]".MainActivity"[/COLOR] [COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]TextView
android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@string/hello_world"[/COLOR] [COLOR=#339933]/>[/COLOR]
[COLOR=#339933]</[/COLOR]RelativeLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا باید TextView را حذف کنیم و سپس یک دکمه (button) در فایل قرار بدهیم. برای این منظور، کدها را به صورت زیر تغییر می دهیم (نوع لایه را هم از RelativeLayout به LinearLayout تغییر می دهیم، البته این مورد اختیاری است) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]LinearLayout xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
xmlns[COLOR=#339933]:[/COLOR]tools[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/tools"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
android[COLOR=#339933]:[/COLOR]orientation[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"vertical"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingBottom[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingLeft[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingRight[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingTop[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
tools[COLOR=#339933]:[/COLOR]context[COLOR=#339933]=[/COLOR][COLOR=#0000FF]".MainActivity"[/COLOR] [COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR][COLOR=#003399]Button[/COLOR]
android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/button1"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Share Text"[/COLOR]
android[COLOR=#339933]:[/COLOR]onClick[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"shareData"[/COLOR] [COLOR=#339933]/>[/COLOR]
[COLOR=#339933]</[/COLOR]LinearLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
بخش مهم کد بالا، خط زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]onClick[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"shareData"[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون ظاهر گرافیکی فایل activity_main.xml به صورت زیر است :

در این مرحله، قصد داریم که متن مورد نظرمان که قرار است به اشتراک گذاشته شود را در فایل strings.xml تعریف کنیم. فایل strings.xml را باز می کنیم :
کدهای آن، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<?[/COLOR]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"utf-8"[/COLOR][COLOR=#339933]?>[/COLOR]
[COLOR=#339933]<[/COLOR]resources[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"app_name"[/COLOR][COLOR=#339933]>[/COLOR]iran-eng.[COLOR=#006633]com_ShareText[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"action_settings"[/COLOR][COLOR=#339933]>[/COLOR]Settings[COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"hello_world"[/COLOR][COLOR=#339933]>[/COLOR]Hello world[COLOR=#339933]!</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]resources[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
ما یک رشته (string) جدید با نام my_text می سازیم و متن مورد نظرمان را در آن قرار می دهیم. بنابراین کدهای فایل strings.xml به صورت زیر در می آید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<?[/COLOR]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"utf-8"[/COLOR][COLOR=#339933]?>[/COLOR]
[COLOR=#339933]<[/COLOR]resources[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"app_name"[/COLOR][COLOR=#339933]>[/COLOR]iran-eng.[COLOR=#006633]com_ShareText[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"action_settings"[/COLOR][COLOR=#339933]>[/COLOR]Settings[COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"hello_world"[/COLOR][COLOR=#339933]>[/COLOR]Hello world[COLOR=#339933]!</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"my_text"[/COLOR][COLOR=#339933]>[/COLOR]آموزش برنامه نویسی اندروید در سایت کلیدستان[COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]resources[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون فایل MainActivity.java را باز می کنیم :
کدهای فایل MainActivity.java به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]package[/B] [COLOR=#006699]com.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#006699][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#006699].sharetext[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.os.Bundle[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.app.Activity[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.Menu[/COLOR][COLOR=#339933];[/COLOR]
[B]public[/B] [B]class[/B] MainActivity [B]extends[/B] Activity [COLOR=#009900]{[/COLOR]
@Override
[B]protected[/B] [COLOR=#000066][B]void[/B][/COLOR] onCreate[COLOR=#009900]([/COLOR]Bundle savedInstanceState[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
[B]super[/B].[COLOR=#006633]onCreate[/COLOR][COLOR=#009900]([/COLOR]savedInstanceState[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
setContentView[COLOR=#009900]([/COLOR]R.[COLOR=#006633]layout[/COLOR].[COLOR=#006633]activity_main[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
@Override
[B]public[/B] [COLOR=#000066][B]boolean[/B][/COLOR] onCreateOptionsMenu[COLOR=#009900]([/COLOR][COLOR=#003399]Menu[/COLOR] menu[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
[COLOR=#666666][I]// Inflate the menu; this adds items to the action bar if it is present.[/I][/COLOR]
getMenuInflater[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]inflate[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]menu[/COLOR].[COLOR=#006633]main[/COLOR], menu[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]return[/B] [COLOR=#000066][B]true[/B][/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
کدهای این فایل را به صورت زیر تغییر می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]package[/B] [COLOR=#006699]com.iran-eng.sharetext[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.os.Bundle[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.app.Activity[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.content.Intent[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.Menu[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.View[/COLOR][COLOR=#339933];[/COLOR]
[B]public[/B] [B]class[/B] MainActivity [B]extends[/B] Activity [COLOR=#009900]{[/COLOR]
@Override
[B]protected[/B] [COLOR=#000066][B]void[/B][/COLOR] onCreate[COLOR=#009900]([/COLOR]Bundle savedInstanceState[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
[B]super[/B].[COLOR=#006633]onCreate[/COLOR][COLOR=#009900]([/COLOR]savedInstanceState[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
setContentView[COLOR=#009900]([/COLOR]R.[COLOR=#006633]layout[/COLOR].[COLOR=#006633]activity_main[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] shareData[COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR] view[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
Intent intent [COLOR=#339933]=[/COLOR] [B]new[/B] Intent[COLOR=#009900]([/COLOR]Intent.[COLOR=#006633]ACTION_SEND[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
intent.[COLOR=#006633]setType[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"text/plain"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] my_string [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getString[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]string[/COLOR].[COLOR=#006633]my_text[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
intent.[COLOR=#006633]putExtra[/COLOR][COLOR=#009900]([/COLOR]Intent.[COLOR=#006633]EXTRA_TEXT[/COLOR], my_string[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
startActivity[COLOR=#009900]([/COLOR]Intent.[COLOR=#006633]createChooser[/COLOR][COLOR=#009900]([/COLOR]intent, [COLOR=#0000FF]"Share this text via"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
@Override
[B]public[/B] [COLOR=#000066][B]boolean[/B][/COLOR] onCreateOptionsMenu[COLOR=#009900]([/COLOR][COLOR=#003399]Menu[/COLOR] menu[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
[COLOR=#666666][I]// Inflate the menu; this adds items to the action bar if it is present.[/I][/COLOR]
getMenuInflater[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]inflate[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]menu[/COLOR].[COLOR=#006633]main[/COLOR], menu[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]return[/B] [COLOR=#000066][B]true[/B][/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون پروژه اندروید آماده است و می توانید آن را به روش دلخواه خود، تست کنید.
با اجرای برنامه اندروید، بر روی یک گوشی، صفحه زیر نمایش داده می شود :
با اشاره بر روی دکمه (button)، گزینه های زیر نمایش داده می شود :
این گزینه ها، تمامی مواردی را نشان می دهد که قابلیت اشتراک گذاری متن، در آنها وجود دارد. مثلا یکی از گزینه ها، گزینه Messaging می باشد که برای ارسال متن به صورت یک پیامک (sms) به کار می رود. با انتخاب این گزینه، صفحه ای نمایش داده می شود که در آن، متن مورد نظر ما به عنوان متن پیامک (sms) نوشته شده و تنها کافی است که کاربر شماره فرد را وارد کرده و سپس پیامک (sms) را ارسال کند :
فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :