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

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

در قسمت سی ام آموزش اندروید نکته دیگری در رابطه با شی TimePicker در آموزش قبل و همچنین شی DatePicker را مفصل آموزش داده ایم.

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

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

TimePicker در پنجره دیالوگ

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

برای استفاده از پنجره دیالوگ تنها کافی است در فایل جاوا برنامه چنین تغییراتی ایجاد کنیم

package com.example.view4prj;



import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.widget.Toast;

import android.widget.TimePicker;

import java.text.SimpleDateFormat;

import java.util.Date;

import android.app.TimePickerDialog;

import android.app.Dialog;





public class MainActivity extends Activity {

        TimePicker tp;

        int hour, minute;

        static final int TIME_DIALOG_ID = 0;



        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_main);



             tp= (TimePicker)findViewById(R.id.timePicker);

                  tp.setIs24HourView(true);



        showDialog(TIME_DIALOG_ID);     

        }



        @Override

        protected Dialog onCreateDialog(int id)

        {

                 switch (id)

                 {

                 case TIME_DIALOG_ID:

                           return new TimePickerDialog(this,mTimeSetListener , hour, minute, false);

                  }

                 return null;

        }



                           private TimePickerDialog.OnTimeSetListener mTimeSetListener=

                                              new TimePickerDialog.OnTimeSetListener() {



                                                        @Override

                                                        public void onTimeSet(TimePicker view, int hourofday, int minuteofhour) {

                                                                 // TODO Auto-generated method stub

                                                                 hour=hourofday;

                                                                 minute=minuteofhour;

                                                                 SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm aa");

                                                                 Date date= new Date(0,0,0,hour,minute);

                                                                 String strDate = timeFormat.format(date);

                                                                 Toast.makeText(getBaseContext(), "you have selected" + strDate, Toast.LENGTH_SHORT).show();



                                                        }

                                              };



        public void onClick(View view)

        {

                 Toast.makeText(getBaseContext(), "Time Selected: " + tp.getCurrentHour() + ":" + tp.getCurrentMinute(), Toast.LENGTH_SHORT).show();

        }

}

سپس برنامه را اجرا کرده نتیجه مشابه نتیجه زیر مشاهده کنید که پس از تنظیم زمان و فشردن دکمه set پیغام تعیین شده توسط Toast را مشاهده میکنید

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

روش کار

برای نمایش یک پنجره دیالوگ از متد showDialog() (در رابطه با این متد در آموزش های قبل مفصل توضیح داده شده)استفاده میکنیم بدین صورت که ای دی دیالوگ را به آن ارسال میکنیم

        showDialog(TIME_DIALOG_ID);     

وقتی متد showDialog() فراخوانی گردد به دنبال آن متد ()onCreateDialog نیز اجرا میگردد

@Override

        protected Dialog onCreateDialog(int id)

        {

                 switch (id)

                 {

                 case TIME_DIALOG_ID:

                           return new TimePickerDialog(this,mTimeSetListener , hour, minute, false);

                  }

                 return null;

        }

در اینجا یک شی جدید از کلاس TimePickerDialog ایجاد شده وcontext کنونی(این مبحث را در ادامه آموزش ها مفصل آموزش خواهیم داد) و مقدار اولیه ساعت و دقیقه را به آن ارسال میکنیم.

وقتی که کاربر دکمه set در پنجره دیالوگ را فشرد متد TimeSet() فراخوانی میگردد

                           private TimePickerDialog.OnTimeSetListener mTimeSetListener=

                                              new TimePickerDialog.OnTimeSetListener() {



                                                        @Override

                                                        public void onTimeSet(TimePicker view, int hourofday, int minuteofhour) {

                                                                 // TODO Auto-generated method stub

                                                                 hour=hourofday;

                                                                 minute=minuteofhour;

                                                                 SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm aa");

                                                                 Date date= new Date(0,0,0,hour,minute);

                                                                 String strDate = timeFormat.format(date);

                                                                 Toast.makeText(getBaseContext(), "you have selected" + strDate, Toast.LENGTH_SHORT).show();



                                                        }

                                              };



        public void onClick(View view)

        {

                 Toast.makeText(getBaseContext(), "Time Selected: " + tp.getCurrentHour() + ":" + tp.getCurrentMinute(), Toast.LENGTH_SHORT).show();

        }

}

در اینجا متد ()TimeSet حاوی ساعت و دقیقه ای است که کاربر وارد نموده و از طریق آرگومان های hourofday و minuteofhour  تنظیم شده.

ابزار نمایش DatePicker

یکی دیگر از ابرارهای نمایش که شباهت زیادی به TimePicker دارد ابزار DatePicker است.با استفاده از این ابزار امکان انتخاب تاریخ را خواهید داشت.به تمرین زیر دقت کنید.

تمرین را در پروژه آموزش قبل پیاده سازی میکنیم(View4Prj)بدین صورت که در فایل activity-man.xml یک ابزار DatePicker مطابق دستورات زیر اضافه میکنیم

     <DatePicker

            android:id="@+id/datePicker"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_below="@+id/timePicker" />

حال در فایل MainActivity.java نیز قسمت های پررنگ شده زیر را اضافه میکنیم

package net.learn2develop.BasicViews4;

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

public class BasicViews4Activity extends Activity {
	TimePicker timePicker;
	DatePicker datePicker;

	int yr, month, day;

	static final int DATE_DIALOG_ID = 1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);


		// showDialog(TIME_DIALOG_ID);
		datePicker = (DatePicker) findViewById(R.id.datePicker);

		//---get the current date---
		Calendar today = Calendar.getInstance();
		yr = today.get(Calendar.YEAR);
		month = today.get(Calendar.MONTH);
		day = today.get(Calendar.DAY_OF_MONTH);
      
	}


	private DatePickerDialog.OnDateSetListener mDateSetListener =
			new DatePickerDialog.OnDateSetListener()
	{
		public void onDateSet(
				DatePicker view, int year, int monthOfYear, int dayOfMonth)
		{
			yr = year;
			month = monthOfYear;
			day = dayOfMonth;
			Toast.makeText(getBaseContext(),
					"You have selected : " + (month + 1) +
					"/" + day + "/" + year,
					Toast.LENGTH_SHORT).show();
		}
	};

	

	public void onClick(View view) {
		Toast.makeText(getBaseContext(),
				"Date selected:" + (datePicker.getMonth() + 1) +
				"/" + datePicker.getDayOfMonth() +
				"/" + datePicker.getYear() + "\n",Toast.LENGTH_SHORT).show();
	}

}

حال برنامه را اجرا کرده و تاریخ را تنظیم میکنیم و دکمه موجود را کلیک میکنیم ودر نتیجه تاریخ تنظیم شده به صورت پیغام Toast به شما نمایش داده خواهد شد.

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

روش کار

دقیقا مثل ابزار TimePicker ابتدا شئی از نوع DatePicker ایجاد کرده و متدهای ()getMonth() , getYear() , getDay را برای دریافت روز و ماه و سال فراخوانی میکنیم

     "Date Selected: " + (dp.getMonth() + 1) + "/" + dp.getDayOfMonth()

                 + "/" + dp.getYear()

و در رویداد onClick مربوط به ابزار Button پیغام Toast که حاوی ماه و سال و روزی میباشد که کاربر تعیین کرده که البته با متدهای ()getMonth() , getDayofMonth ,()getYear بدست آمده اند نمایش داده میشود

Toast.makeText(getBaseContext(),
				"Date selected:" + (datePicker.getMonth() + 1) +
				"/" + datePicker.getDayOfMonth() +
				"/" + datePicker.getYear() + "\n",Toast.LENGTH_SHORT).show();

دقت کنید که متد ()getMonth مقدار 0 را برای ژانویه (اولین ماه میلادی) نمایش میدهد پس تنها کافیست یک مقدار به این متد اضافه کنیم

(dp.getMonth() + 1)

این ابزار را نیز میتوان در پنجره دیالوگ نمایش داد.

DatePicker در پنجره دیالوگ

برای نمایش این ابزار در پنجره دیالوگ تنها کافی است مانند شی TimePicker تغییراتی در فایل جاوا بوجود آوریم

package net.learn2develop.BasicViews4;

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

public class BasicViews4Activity extends Activity {
	TimePicker timePicker;
	DatePicker datePicker;

	int yr, month, day;

	static final int DATE_DIALOG_ID = 1;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);


		// showDialog(TIME_DIALOG_ID);
		datePicker = (DatePicker) findViewById(R.id.datePicker);

		//---get the current date---
		Calendar today = Calendar.getInstance();
		yr = today.get(Calendar.YEAR);
		month = today.get(Calendar.MONTH);
		day = today.get(Calendar.DAY_OF_MONTH);

		showDialog(DATE_DIALOG_ID);        
	}

	@Override
	protected Dialog onCreateDialog(int id)
	{
		  switch (id)
		  
          {

          case DATE_DIALOG_ID:
        		return new DatePickerDialog(
    					this, mDateSetListener, yr, month, day);
     }

		return null;

	
	}

	private DatePickerDialog.OnDateSetListener mDateSetListener =
			new DatePickerDialog.OnDateSetListener()
	{
		public void onDateSet(
				DatePicker view, int year, int monthOfYear, int dayOfMonth)
		{
			yr = year;
			month = monthOfYear;
			day = dayOfMonth;
			Toast.makeText(getBaseContext(),
					"You have selected : " + (month + 1) +
					"/" + day + "/" + year,
					Toast.LENGTH_SHORT).show();
		}
	};

	

	public void onClick(View view) {
		Toast.makeText(getBaseContext(),
				"Date selected:" + (datePicker.getMonth() + 1) +
				"/" + datePicker.getDayOfMonth() +
				"/" + datePicker.getYear() + "\n",Toast.LENGTH_SHORT).show();
	}

}

پس از اجرا پنجره دیالوگ تاریخ را مطابق تصویر زیر خواهید دید پس از تنظیم تاریخ فشردن دکمه Done پیغام Toast مبنی بر تاریخ انتخابی را مشاهده خواهید کرد

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

روش کار

ابزار نمایش DatePicker نیز کاملا مشابه TimePicker عمل خواهد کرد  بدین صورت که وقتی تاریخ انتخاب میشود متد ()onDateSet فراخوانی میگردد و اینجا همانجایی است که باید تاریخ تنظیم گردد

       @Override

                                    public void onDateSet(DatePicker view, int yr, int monthofyear, int dayofmonth) {

                                              // TODO Auto-generated method stub

                                              year=yr;

                                              month=dayofmonth;

                                              day=dayofmonth;

                                              Toast.makeText(getBaseContext(), "you have selected : " + (month +1) + "/" + day +"/" + yr, Toast.LENGTH_SHORT).show();





                                    }

دقت کنید که قبل از نمایش دیالوگ باید سه متغیر year,month,day را مقداردهی اولیه کنید

//--get the current date--

                  Calendar today= Calendar.getInstance();

                  year=today.get(year);

                  month=today.get(month);

                  day= today.get(day);



                  showDialog(DATE_DIALOG_ID);

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

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

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

پاسخ دهید

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