کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Intent در اندروید-intent های ضمنی

 

clip_image001

دوره آموزش برنامه نویسی اندروید

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

 

آموزش Intent در اندروید )قسمت چهارم(

 تست

پس از تست اجرای برنامه، می توانید تصویری از کتابخانه ی تصویر (image library) خود انتخاب کرده و آن را به ImageView تخصیص دهید.

12. تمرین : استفاده از intent های ضمنی مختلف

هدف تمرین

تمرین زیر کاربرد intent های ضمنی به منظور راه اندازی activity در سیستم اندروید را با مثال تشریح می کند.

ساختن پروژه

پروژه ای با نام de.vogella.android.intent.implicit و activity به نام CallIntentActivity ایجاد کنید.

در این مثال با استفاده از وییو Spinner، انتخاب می کنید کدام intent فعال شود و برای محتوای Spinner نیز مقادیر ایستا (static values) تعریف می کنید.

فایل intents.xml زیر را در پوشه ی res/values ایجاد کنید.

 <resources>

        <string-array name="intents">

                <item>Open Browseritem>

                <item>Call Someoneitem>

                <item>Dialitem>

                <item>Show Mapitem>

                <item>Search on Mapitem>

                <item>Take pictureitem>

                <item>Show contactsitem>

                <item>Edit first contactitem>

            string-array>

resources>

 فایل طرح بندی activity را به کد زیر تغییر دهید.

xml version="1.0" encoding="utf-8" ?>

‎‎<gridlayout xmlns:android="http://schemas.android.com/apk/res/android"

             android:layout_width="match_parent"

             android:layout_height="match_parent"

             android:alignmentmode="alignBounds"

             android:columncount="1">

          <spinner android:id="@+id/spinner"

                     android:layout_gravity="fill_horizontal"

                     android:drawselectorontop="true"

                     >

              Spinner>

            <button android:id="@+id/trigger"

                      android:onclick="onClick"

                      android:text="Trigger Intent">

                Button>

gridlayout>

  برای اینکه بتوانیم برخی از intent ها را بکارببریم، باید مجوز لازمه را در فایل AndroidManifest.xml تعریف کنید. به یاد داشته باشید که فایل  AndroidManifest.xml باید تمامی مجوزهایی را که در لیست زیر فهرست شده در خود داشته باشد.

xml version="1.0" encoding="utf-8" ?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

           package="de.vogella.android.intent.implicit"

           android:versioncode="1"

           android:versionname="1.0">

        <uses-sdk android:minsdkversion="15" />

 

        <uses-permission android:name="android.permission.CALL_PRIVILEGED">

    uses-permission>

        <uses-permission android:name="android.permission.CALL_PHONE">

    uses-permission>

        <uses-permission android:name="android.permission.CAMERA">

    uses-permission>

        <uses-permission android:name="android.permission.READ_CONTACTS">

    uses-permission>

        <uses-permission android:name="android.permission.INTERNET" />

        <application android:icon="@drawable/icon"

                       android:label="@string/app_name">

       

                <activity android:name=".CallIntentsActivity"

                            android:label="@string/app_name">

                        <intent-filter>

                                <action android:name="android.intent.action.MAIN" />

                                 <category android:name="android.intent.category.LAUNCHER" />

            intent-filter>

                    activity>

                application>

manifest>

کلاس activity خود را به کد زیر تغییر دهید.

package de.vogella.android.intent.implicit;
        ‎ ‎
       
import
android.app.Activity;
       
import
android.content.Intent;
       
import
android.net.Uri;
       
import
android.os.Bundle;
       
import
android.view.View;
       
import
android.widget.ArrayAdapter;
       
import
android.widget.Spinner;
       
import
android.widget.Toast;
        ‎ ‎

public class CallIntentsActivity extends
Activity {
         
private Spinner spinner
;

       
/** Called when the activity is first created. */

        ‎ ‎
          @Override
         
public void onCreate(Bundle savedInstanceState) {
                   
super
.onCreate(savedInstanceState);
                    setContentView(R.layout.main);
                   
spinner
= (Spinner) findViewById(R.id.spinner);
                    ArrayAdapter adapter = ArrayAdapter.createFromResource(
this،

                                R.array.intents، android.R.layout.simple_spinner_item);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                   
spinner.setAdapter(adapter);
                  }
                ‎ ‎
                 
public void
onClick(View view) {
                   
int position = spinner
.getSelectedItemPosition();
                    Intent intent =
null
;
                   
switch
(position) {
                           
case 0
:
                              intent =
new
Intent(Intent.ACTION_VIEW،
                                                  Uri.parse(
"http://www.vogella.com"
));
                                
break
;
                           
case 1
:
                            intent =
new
Intent(Intent.ACTION_CALL،
                  Uri.parse(
"tel:(+49)12345789"
));
                                
break
;
                           
case 2
:
                             intent =
new
Intent(Intent.ACTION_DIAL،
                                                  Uri.parse(
"tel:(+49)12345789"
));
                              startActivity(intent);
                              
break
;
                           
case 3
:
                            intent =
new
Intent(Intent.ACTION_VIEW،
                                                  Uri.parse(
"geo:50.123،7.1434?z=19"
));
                            
break
;
                           
case 4
:
                           intent =
new
Intent(Intent.ACTION_VIEW،
                                                  Uri.parse(
"geo:0،0?q=query"
));
                          
break
;
                           
case 5
:
                                      intent =
new Intent("android.media.action.IMAGE_CAPTURE"
);
                               
break
;
                           
case 6
:
                              intent =
new
Intent(Intent.ACTION_VIEW،
                                                  Uri.parse(
"content://contacts/people/"
));
                             
break
;
                           
case 7
:
                                intent =
new
Intent(Intent.ACTION_EDIT،
                                                  Uri.parse(
"content://contacts/people/1"
));
                              
break
;
                            }
                   
if (intent != null
) {
                              startActivity(intent);
                            }
                  }
                  @Override
         
public void onActivityResult(int requestCode،int
resultCode، Intent data) {
                   
if (resultCode == Activity.RESULT_OK && requestCode == 0
) {
                        String result = data.toURI();
                        Toast.makeText(
this،
result، Toast.LENGTH_LONG);
                                }
                               } ‎ ‎
                              }

 

تست برنامه

اگر برنامه را اجرا کنید، فهرستی از دکمه های موجود را مشاهده می کنید که در صورت زدن هریک از آن ها، activity هایی که تعریف کرده اید راه اندازی می شوند.

توجه 

به خاطر داشته باشید که هیچ activity دریافت کننده ای مشخص نکردیم بلکه فقط عملیاتی (action) که باید انجام شود را تعریف کردیم. شما قادرید با استفاده از این روش تَسک هایی تعریف کنید که مولفه های اپلیکیشن های مختلف را مورد استفاده قرار می دهند.

1394/07/27 4219 3384
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...