آموزش برنامه نویسی اندروید
آموزش اندروید فصل دوم قسمت دوم – کار با اکتیویتی ها
اردیبهشت ۳۱, ۱۳۹۵
آموزش شی گرایی
آموزش شی گرایی – قسمت هفتم
خرداد ۴, ۱۳۹۵
آموزش برنامه نویسی اندروید

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

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

آموزش اندروید فصل دوم قسمت سوم – استایل اکتیویتی

توجه : برای مشاهده تصاویر در سایز اصلی بر روی آنها کلیک کنید.

اعمال استایل و تم برروی اکتیویتی

به صورت پیش فرض یک اکتیویت تمام تصویر را اشغال میکند. اما ما میتوانیم یک م پنجره Dialog را به اکتیویتی داده تا به صورت شناور نمایش داده شود.این روش بیشتر زمانی کاربرد دارد که بخواهیم یک پیغام هشدار را به کار به کاربر نمایش دهیم چون همیشه نمایش اکتیویتی به صورت دیالوگ توجه کاربر را جلب میکند.

برای اعمال تم دیالوگ تنها کافی است قسمت android:theme عنصر <Activity> موجود در فایل manifest برنامه به صورت زیر تغییر دهیم

 <activity

            android:name=".Factivityy"

            android:label="@string/app_name"

            android:theme="@android:style/Theme.Dialog" >

            <intent-filter>

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

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

            </intent-filter>

        </activity>

 پس از اعمال تغییرات پروژه را اجرا کنی تا نتیجه مشابهه تصویر زیر مشاهده فرمایید

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

اگر تنها نمایش پیغام اکتیویتی(یا پیام هشدار) برای شما مهم است میتوانید برای زیبایی کار هم عنوان اکتیویتی را پنهان کنید برای این کار نیز تنها کافی است از متد ()requestWindowFeature استفاده کرده و عبارت Window.FEATURE_NO_TITLE مانند زیر به آن ارسال کنید

import android.view.Window;

public class Factivityy extends Activity {

        String tag="LifeCycle";

        @Override

        public void onCreate(Bundle savedInstanceState)

        {

                 super.onCreate(savedInstanceState);

                 requestWindowFeature(Window.FEATURE_NO_TITLE);

                 setContentView(R.layout.main);

        }

قسمت های پررنگ شده را به کدهای خود اضافه کنید و برنامه را اجرا کنید و دیالوگ بدون عنوان را به صورت زیر مشاهده خواهید کرد

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

نمایش یک پنجره دیالوگ

مواقعی نیاز است که یک پنجره دیالوگ به کاربر نمایش دهیم مثلا زمانی که برای انجام کاری نیاز به تایید کاربر داریم.در این مورد میتوان از متد onCreatedDialog() که در کلاس پایه اکتیویتی است استفاده کنید.

مثال زیر نحوه انجام این کار را مشخص میکند.پروژه جدید ایجاد کرده کدهای زیر را به قسمت main.xml اضافه کنید

<Button

        android:id="@+id/button1"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="150dp"

        android:onClick="onClick"

        android:text="click to display a dialog" />

همانگونه که کد های فوق را مشاهده میکنید همگی مشخصه های Button ایجاد شده میباشد که هم از طریق کدنویسی و هم از طریق گرافیکی میتوان دکمه یا Button را ایجاد کرد. مشخصه مهم Button رویداد onClick میباشد که بدین صورت مشخص شده android:onClick=“onClick”

 حال در Activity پروژه بدین صورت کدنویسی میکنیم

package com.example.dialog;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.app.Dialog;

import android.content.DialogInterface;

import android.view.View;

import android.widget.Toast;

import android.os.Bundle;

public class DialogActivity extends Activity {


        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_dialog);

        }

        public void onClick(View V)

        {

                 showDialog(0);

        }

        @Override

        protected Dialog onCreateDialog(int id)

        {

          switch (id)

             {

              case 0:

                 Builder b=new AlertDialog.Builder(this);

                 b.setIcon(R.drawable.ic_launcher);

                 b.setTitle("This is Dialog with some Option...");

                 b.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                     @Override

                       public void onClick(DialogInterface dialog, int wichButton) {

                           // TODO Auto-generated method stub

                             Toast.makeText(getBaseContext(), "Ok Clicked", Toast.LENGTH_SHORT).show();

                                 }

                 });

                        b.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                         @Override

                         public void onClick(DialogInterface dialog, int wichButton) {

                         // TODO Auto-generated method stub

                          Toast.makeText(getBaseContext(), "Cancel Clicked", Toast.LENGTH_SHORT).show();

                                    }

                           });
                      b.setMessage("Click Ok or Cancell");

                           return b.create();

                 }

                 return null;

        }

}

                          

روش کار

برای نمایش یک دیالوگ ابتدا باید متد ()onCreateDialog را در کلاس Activity پیاده کنید:

@override

Protected Dialog onCreateDialog(int id)

//…

}

این متد زمانی فرراخوانی میگردد که شما متد ()showDialog را فراخوانی کنید:

Public void onClick(View v){

showDialog(0);

}

متد ()onCreateDialog یک callback برای ایجاد دیالوگ های مدیریت شده به وسیله اکتیویتی است. به محض فراخوانی متد ()showDialog این callback نیز فراخوانی میگردد. متد ()showDialog یک آرگومان از نوع integer قبول میکند که مشخص کننده یک دیالوگ خاص جهت نمایش است. ما از یک switch براش مشخص کردن انواع مختلف دیالوگ جهت ایجاد استفاده کرده ایم اما در این مثال تنها یک نوع دیالوگ استفاده شده که در ادامه انواع دیگری را اضافه خواهیم کرد.

برای ایجاد یک دیالوگ از سازنده کلاس AlertDialog استفاده میکنیم و همچنین باید خصوصیات مختلفی از جمله آیکن  , عنوان , دکمه ها و البته چک باکس هارا تعیین کنیم. که اگر به دستورات دقت کنیم دو دکمه Ok و Cancel را با متدهای ()setPosetiveButton و ()setNegativeButton تنظیم کرده ایم همچنین با استفاده از متد ()setMessage که پیغامی را درون دیالو قرار میدهد و هرگاه یکی از دکمه های Ok یا Cancell کلیک شود از کلاس Toast برای نشان دادن یک پیام استفاده میشود که نشان دهنده گزینه گزینه انتخاب شده میباشد.

کلاس Toast که از آن برای نمایش یک پیغام به کاربر استفاده میشود چنین ساختاری دارد 

Toast.makeText(context, text, duration)

پارامتر اول که context نامیده میشود درواقع بستری از اپلیکیشن میباشد و به تمامی ویژگی های اپلیکیشن اشاره دارد مثلا اندازه صفحه موبایل و اکتیویتی فعال و لایه نمایشی فعال و … محتوی context مقداری از نوع context است اما ما میتوانیم این مقدار را MainActivity.this نیز قرار دهیم با این که این مقدار از نوع اکتیویتی است اما  هر اکتیویتی در انتها از کلاس پایه context(در ادامه context را آموزش خواهیم داد) انشعاب گرفته شده.

حال برنامه خود را اجرا کرده و نتیجه را ببینید

 

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

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل دوم قسمت دوم

آموزش اندروید فصل دوم قسمت چهارم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *