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

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

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

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

در قسمت سی و یکم آموزش اندروید در رابطه با شی های لیستی که شامل ListView و SpinnerList میباشد توضیح داده ایم و شی ListView را به طور کامل توضیح داده ایم و در آموزش بعد SpinnerList را مفصل آموزش خواهیم داد.

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

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

استفاده از ابزار نمایش لیستی برای نمایش لیست های طولانی

ابزارهای نمایش لیستی این قابلیت را به ما میدهد تا لیست های طولانی از گزینه هارا نمایش دهیم. در اندروید دو نوع ابزار نمایش لیستی وجود دارد که شامل ListView و SpinnerView میباشد هر دو این ابزار برای نمایش لیست های طولانی مناسب است.

ابزار نمایش ListView

ابزار نمایش ListView یک لیست از گزینه ها رادر حالت عمودی و با قابلیت scroll شدن نمایش میدهد.برای درک بیشتر به تمرین زیر دقت کنید

پروژه جدیدی بانام View5Prj ایجاد کرده و در فایل MainActivity.java چنین کدنویسی کنید

package com.example.view5prj;

import android.os.Bundle;

import android.app.ListActivity;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;



public class MainActivity extends ListActivity {



        String[] city = {

                           "Shiraz",

                           "Esaan",

                           "Tehran",

                           "Tabriz",

                           "Yazd",

                           "Mashhad",

                           "Gilan",

                           "Kerman"

        };





        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 //--no need to call this

                 //setContentView(R.layout.activity_main);

            setListAdapter(new ArrayAdapter<String>(this,

                    android.R.layout.simple_list_item_checked, city));         }



        public void onListItemClick(ListView parent,View v, int position, long id)



        {

                 Toast.makeText(this, "You have selected " + city[position], Toast.LENGTH_SHORT).show();

        }



}                                                                                                                                     

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

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

روش کار

نکته قابل توجه در این مثال این است که کلاس MainActivity.java  کلاس ListActivity را بسط میدهد.کلاس ListActivity نیز کلاس Activity را بسط میدهد

public class MainActivity extends ListActivity {

همچنین دقت کنید که هم اکنون نیاز به هیچ تغییری در فایل xml برنامه نمیباشد کلاس ListActivity خود شامل یک ListView میباشد از این رو متد ()onCreate نیازی به فراخوانی ()setContentView برای بارگذاری رابط کاربری از فایل activity_main.xml نیست:

//--no need to call this

                 //setContentView(R.layout.activity_main);

در متد ()onCreate از متد ()setListAdapter برای پر کردن کل صفحه نمایش از یک ListView در زمان اجرا استفاده میکنیم. شی ArrayAdapter آرایه ای از رشته ها را که قرار است در ListView نمایش داده شوند مدیریت میکند.در مثال بالا ListView را حالت نمایش simple_list_item_checked تنظیم کردیم

setListAdapter(new ArrayAdapter<String>(this,                     android.R.layout.simple_list_item_checked, city));

وقتی که یکی از آیتم های لیست کلیک میشود متد onListItemClick() فراخوانی میگردد

public void onListItemClick(ListView parent,View v, int position, long id)



        {

                 Toast.makeText(this, "You have selected " + city[position], Toast.LENGTH_SHORT).show();

        }

سفارشی سازی ListView

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

فایل جاوا پروژه قبل را بدین صورت تغییر دهید تا بتوان چندین گزینه را باهم انتخاب کنیم

package com.example.view5prj;



import android.os.Bundle;

import android.app.ListActivity;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;



public class MainActivity extends ListActivity {



        String[] city = {

                           "Shiraz",

                           "Esaan",

                           "Tehran",

                           "Tabriz",

                           "Yazd",

                           "Mashhad",

                           "Gilan",

                           "Kerman"

        };





        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 //--no need to call this

                 //setContentView(R.layout.activity_main);



                 ListView lstview = getListView();

                 //lstview.setChoiceMode(ListView.CHOICE_MODE_NONE);

                 //lstview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

                 lstview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

                 lstview.setTextFilterEnabled(true);

            setListAdapter(new ArrayAdapter<String>(this,

                    android.R.layout.simple_list_item_checked, city));         }



        public void onListItemClick(ListView parent,View v, int position, long id)



        {

                 Toast.makeText(this, "You have selected " + city[position], Toast.LENGTH_LONG).show();

        }

{

برنامه را اجرا کنید و چند  گزینه را انتخاب کنید تا آیکون چک را ببینید همچنین با انتخاب هرگزینه پیغام Toast را ببنید

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

روش کار

برای اینکه در زمان اجرا به شی ListView دسترسی داشته باشیم از متد getListView() استفاده کنیم که ListActivity ابزار ListView را برمیگرداند. برای اینکه بتوان در زمان اجرا رفتار ListView را کنترل کنید باید ابتدا به روش بالا به آن دسترسی پیدا کنید در این مورد از متد setChoiceMode() برای تعریف نحوه کنترل کلید کاربر استفاده کردیم برای این مثال حالت (ListView.CHOICE_MODE_MULTIPLE را تنظیم کردیم که بدین معنی است که بتوان چندین گزینه را انتخاب کنیم  

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

CHOICE_MODE_NONE  : لیست عادی که انتخاب را نشان نمیدهد.

CHOICE_MODE_SINGLE  :لیستی که تنها اجازه یک انتخاب را میدهد.

TRANSCRIPT_MODE_ALWAYS_SCROLL  : این لبست به طور اتوماتیک به پایین حرکت میکند بدون توجه به این که آیتم ها visible هستند یا نه.

TRANSCRIPT_MODE_DISABLED  :   حالت متن غیر فعال

ListView lstview = getListView();

                 //lstview.setChoiceMode(ListView.CHOICE_MODE_NONE);

                 //lstview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

                 lstview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

 ذخیره گزینه ها در فایل string.xml

گرچه در فایل بالا از آرایه استفاده کرده اما در عمل بهتر است که از پایگاه  داده و یا فایل string.xml استفاده کنیم به همین دلیل همین تمرین را با استفاده از فایل string.xml که در مسیر res\values قراردارد انجام میدهیم.

در فایل string.xml در مسیر res\values آرایه را بدین صورت وارد میکنیم

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

<resources>



    <string name="app_name">View5Prj</string>

    <string name="hello_world">Hello world!</string>

    <string name="action_settings">Settings</string>



    <string-array name="city_array">

        <item>Shiraz</item>

        <item>Mashhad</item>

        <item>Tehran</item>

        <item>Tabriz</item>

        <item>Ilam</item>

        <item>Ahvaz</item>

        <item>BandarAbbas</item>

        <item>Amol</item>

    </string-array>

</resources>

حال عبارت های پررنگ شده را به فایل MainActivity.java اضافه میکنیم

package com.example.view5prj;



import android.os.Bundle;

import android.app.ListActivity;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;



public class MainActivity extends ListActivity {

        String[] city ;

        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 //--no need to call this

                 //setContentView(R.layout.activity_main);



                 ListView lstview = getListView();

                 lstview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

                 lstview.setTextFilterEnabled(true);



                 city = getResources().getStringArray(R.array.city_array);

            setListAdapter(new ArrayAdapter<String>(this,

                    android.R.layout.simple_list_item_checked, city));         }



        public void onListItemClick(ListView parent,View v, int position, long id)



        {

                 Toast.makeText(this, "You have selected " + city[position], Toast.LENGTH_LONG).show();

        }



}

برنامه را اجرا کرده و آِرایه ای را که در فایل string.xml تعریف کردید را ببینید

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

روش کار

در عبارات زیر نیز با استفاده از ()getStringArray درون ()getResoutces  به آرایه  ای که در فایل string.xml ایجاد کردیم با استفاده از آی دی تعیین شده دسترسی پیدا خواهیم کرد و آن را درون متغیر دیگری از نوع آرایه میریزیم 

                 city = getResources().getStringArray(R.array.city_array);

نام هایی را که در فایل string.xml قرار دادیم را با استفاده از متد ()getResources استخراج میکنیم

                 city = getResources().getStringArray(R.array.city_array);

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

        public void onListItemClick(ListView parent,View v, int position, long id)

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

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

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

پاسخ دهید

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