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

1395/1/14 ستاره مقاری 3683

با سلام با قسمت  دهم از آموزش اندروید در خدمتتون هستم

در این قسمت به ادامه ساخت پروژه خواهیم پرداخت.

در جلسه قبل تا اینجا پیش رفتیم که با ابزارهای editText و TextView و همچنین RadioButton آشنا شدیم.

از صفحه ثبت نامی که برای کاربر درست کردیم دوتا بخشش میمونه. انتخاب عکس که این رو میذارم برای جلسات اینده تر

دومیش هم یه تقویم فارسی برای انتخاب تاریخ تولد که جلسه آینده بهتون یاد خواهم داد.

این جلسه میخوام یکار خیلی جذابو انجام بدیم! ارسال پیامک! اگر یادتون باشه میخواستم برای لیست افرادی که ذخیره کردید یه صفحه ای داشته باشیم که بتونید لیست دوست هاتونو ببینید بعد یک نفر رو از لیست انتخاب کرده و توی یک صفحه دیگه بتونید مشخصات اون دوستتون رو ببینید. مثلا شمارشو ببینید و بهش پیام بدید!

خب بیاید همون صفحه ای که قراره دوستتون رو نشون بده رو بسازیم.

یه layout میسازم به اسم friend_info و یه Activity هم بهش میدم به اسم FriendInfoActivity.

فقط فراموش نکنید همونطور که بهتون گفتم activity تون رو داخل manifest تعریف کنیدش.

من layout رو از نوع RelativeLayout تعریف میکنم و ابزارهای زیرو گذاشتم توی صفحم تا الان:

  1. یدونه ImageView میگذارم که برای نشون دادن عکس دوست شما هست:
<ImageView android:layout_width="150dp"
           android:layout_height="150dp"
           android:layout_alignParentLeft="true"
           android:layout_alignParentTop="true"
           android:background="@android:color/holo_blue_bright"
        />

 

  1. یدونه TextViwe برای نمایش اسم
<TextView android:layout_width="wrap_content" 

          android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

          android:layout_alignParentRight="true"

          android:text="نام"

          android:textSize="30sp"

          android:layout_marginTop="20dp"

          android:layout_marginRight="20dp"/>

فقط جهت یادآوری میگم که الان من این TextView رو هم به بالای صفحم هم به سمت راستش align کردم.

از طرفی با دادن margin کمی فاصله دادمشون با گوشه صفحم

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

خب حالا باید به همین ترتیب بیام زیر جایی که اسم طرف قراره باشه مثلا یه دکمه بذارم که پیامک ارسال کنه یه دکمم بذارم زنگ بزنه بهش

بیایم یه Button بذاریم برای ارسال. خب من یه دکمه میذارم

<Button android:layout_width="60dp"

        android:layout_height="60dp"

        android:layout_below="@+id/textView"

        android:layout_alignParentRight="true"

        android:layout_marginRight="20dp"

        android:layout_marginTop="10dp"

        android:id="@+id/btnSms"

        android:background="@android:drawable/sym_action_email"/>

همشو میدونید جز آخری! الان حتما براتو سواله این چیه.... drawable که عکس نذاشتیم پس چیه این.

دوستان اندروید خودش یه سری آیکون آماده داره که میتونید استفاده کنید. برای اینکه لیستشو راحت ببینید برید داخل همون بخش design و برید background این دکمه رو بیارید.

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

خب اینجا میتونید کلی آیکونای آماده رو ببینیید و توی برنامتون اگه خواستید استفاده کنید. مسلما خودتون میتونید ایکونای بهتر اضافه کنید اما برای آموزش لازم دیدم اینهارو هم بدونید

در نهایت چنین چیزی داریم:

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

حالا بریم توی Activity تا ببینیم چطوری این دکمه با زدنش میتونیم پیامک بفرسید.

پس میرم و متد onClick رو میسازم.

Button btnS = (Button) findViewById(R.id.btnSms);

btnS.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    }

});

خب برای ارسال sms از کلاسی به نام smsManager استفاده میکنیم. اول کده زیر رو ببینید:

SmsManager smsM = SmsManager.getDefault();

خب SmsManager یه کلاسه خودش یه نمونه ای به نام smsM ازش دارم الان. که اومدم برابر قرارش دادم با متدی به نام getDefault که داخل کلاس SmsManager هست و خروجیش هم از نوع همون کلاس SmsManager هست!

اینهارو تنها با گرفتن دکمه ctrl و بردن موس روی اسم این کلاس و تابع میتونید متوجه شید.

حالا برای ارسال اس ام اس هم از تابعی از این کلاس استفاده میکنم به نام sendTextMessage

smsM.sendTextMessage("09111111111",null,"salam",null,null);

خب به همین راحتی. ورودی اول شماره تلفنه میتونید الان شماره یکیو بذارید و تست کنید کار میکنه اپ یا نه. ورودی سوم متنه پیامه.

بقیه رو فعلا null گذاشتم... null ینی هیچی. دومین ورودی همون service center address برای پیامک. اگه null بذارید از همون حالت پیشفرضش استفاده میکنه. مورد چهارم و پنجم هم به ترتیب برای الارم دادن موقع ارسال اس ام اس و همچنین موقع deliver شدنش هستن.

فقط یکاری میمونه... ما داریم از قابلیت ارسال sms توی دستگاه کاربر استفاده میکنیم و باید اجازشو ازش بگیریم!

پس برید داخل manifest و بزنید:

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

برای تست این صفحه بیاید مثلا بزنید با زدن یکی از دکمه هاتون این اکتیویتی باز شه که بتونید تست کنیدش که این رو هم بلدید.

البته باید توی صفحه یه جایی بذاریم کاربر متن پیامکشو تایپ کنه مثلا. که حالا انجام خواهیم داد این رو هم در آینده

 

خب حالا که تا اینجا اومدیم... بیاید زنگ زدنم یاد بگیرید!

من دوباره توی layout ام یه دکمه میسازم برای زنگ زدن:

<Button android:layout_width="60dp"

        android:layout_height="60dp"

        android:layout_below="@+id/textView"

        android:layout_toLeftOf="@id/btnSms"

        android:layout_marginRight="20dp"

        android:layout_marginTop="10dp"

        android:id="@+id/btnCall"

        android:background="@android:drawable/sym_call_outgoing"/>

که اینطوری میشه:

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

خب برید توی همون Activity که داشتیم... برای این دکمه یه onClick بسازید.

برای تماس تلقنی گرفتن از Intent استفاده میکنیم. یادتونه گفتم Intent یه سری درخواستهای ما از سیستم عامل رو شامل میشه؟ تماس تلفنی هم همینطوره. طبق زیر:

((Button) findViewById(R.id.btnCall)).setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:09111111111"));

        startActivity(intent);

    }

});

اول از همه خوده اصله onClick رو ببینید.... اندفعه یه مدل جدید تعریف کردمش! دوستان این مدل هم میتونید از دکمه یا کلا هر کلاسی استفاده کنید! ما همیشه یه نمونه ای میگیریم یه اسمی بهش میدیم...

اینجوری درواقع وقتی که میخوایم یه کلاسی رو فقط یبار استفاده کنیم بدیمش بره اینکارو میکنیم. اینجوری فرض کنید که در این حالت خوده اندروید و در اصل میشه گفت جاوا یه اسمی میده استفاده میکنه و میفرسه بره J

خب در ادامه Intent رو اینجوری تعریف کردیم... همونجور که میبینید با intent ای که برای رفتن از یه اکتیویتی به اکتیویتی دیگه بود فرق داره.

و در نهایت هم start کردیمش.

و یادمون نره که باز با قابلیت گوشی کاربر ماها کار داریم و باید اجازشو بگیریم:

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

خب تست کنید....

 

خب دوستان من یادتون باشه برای بخش ثبت افراد میخواستم یه تقویم فارسی بذارم براتون که استفاده کنیدش. آموزشش برای جلسه بعد هست. اما دوست دارم خودتون ببینم میتونید باهاش کنار بیاید یا نه

کلمات کلیدی