آموزش برنامه نویسی اندروید فصل سوم
آموزش اندروید فصل سوم قسمت چهاردهم – Spinner
تیر ۱۹, ۱۳۹۵
آموزش برنامه نویسی اندروید فصل سوم
آموزش اندروید فصل سوم قسمت شانزدهم – زیر کلاس DialogFragment
تیر ۲۱, ۱۳۹۵

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

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

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

در قسمت سی و سوم آموزش اندروید در رابطه با زیر کلاس های فرگمنت ها که شامل ListFragment , DialogFragment , PreferenceFeragment توضیح داده ایم و مثالی که کلاس ListFragment را بسط دهد را آموزش داده ایم.

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

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

درک مفهوم فرگمنت اختصاصی

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

همانطور که قبلا گفته شد فرگمنت ها اکتیویتی های کوچکی هستند که چرخه حیات مختص خود را دارند.برای ایجاد یک فرگمنت نیاز به یک کلاس دارید یک کلاس پایه فرگمنت را بسط دهد.علاوه بر کلاس پایه فرگمنت میتوان از زیرکلاس های دیگر کلاس فرگمنت برای ایجاد فرگمنت های اختصاصی استفاده کرد. در ادامه سه زیر کلاس : ListFragment و DialogFragment و PreferenceFragment  را آموزش میدهیم.

استفاده از ListFragment

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

برای درک بیشتر پروژه جدیدی به نام ListFragmentExample ایجاد کرده و در فایل main.xml آن دو فرگمنت را چنین ایجاد میکنیم

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

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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="horizontal" >



<fragment

    android:name="net.learn2develop.ListFragmentExample.Fragment1"

    android:id="@+id/fragment1"

    android:layout_weight="0.5"

    android:layout_width="0dp"

    android:layout_height="200dp" />



<fragment

    android:name="net.learn2develop.ListFragmentExample.Fragment1"

    android:id="@+id/fragment2"

    android:layout_weight="0.5"

    android:layout_width="0dp"

    android:layout_height="300dp" />



</LinearLayout>

سپس در فایل xml دیگری را در همان مسیر با نام fargment1 ایجاد کرده و ابزار نمایش ListView را چنین ایجاد میکنیم

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

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

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">



    <ListView

        android:id="@id/android:list"

        android:layout_width="match_parent"

        android:layout_height="match_parent"              

        android:layout_weight="1"

        android:drawSelectorOnTop="false"/>



</LinearLayout>

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

package net.learn2develop.ListFragmentExample;



import android.app.ListFragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;



public class Fragment1 extends ListFragment {

    String[] presidents = {

        "Dwight D. Eisenhower",

        "John F. Kennedy",

        "Lyndon B. Johnson",

        "Richard Nixon",

        "Gerald Ford",

        "Jimmy Carter",

        "Ronald Reagan",

        "George H. W. Bush",

        "Bill Clinton",

        "George W. Bush",

        "Barack Obama"

    };



    @Override

    public View onCreateView(LayoutInflater inflater,

    ViewGroup container, Bundle savedInstanceState) {       

        return inflater.inflate(R.layout.fragment1, container, false);

    }



    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(getActivity(),

            android.R.layout.simple_list_item_1, presidents));

    }



    public void onListItemClick(ListView parent, View v,

    int position, long id)

    {         

        Toast.makeText(getActivity(),

            "You have selected " + presidents[position],

            Toast.LENGTH_SHORT).show();

    } 



}

حال برنامه را اجرا کرده و نتیجه را مطابق تصویر زیر مشاهده کنید

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

روش کار

ابتدا یک فایل xml برای فرگمنت ایجاد کرده و یک عنصر ListView به آن اضافه میکنیم

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

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

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">



    <ListView

        android:id="@id/android:list"

        android:layout_width="match_parent"

        android:layout_height="match_parent"              

        android:layout_weight="1"

        android:drawSelectorOnTop="false"/>



</LinearLayout>

سپس در کلاس پس از بسط دادن کلاس با کلاس ListFragment یک آرایه از اسامی را ایجاد میکنیم

public class Fragment1 extends ListFragment {

    String[] presidents = {

        "Dwight D. Eisenhower",

        "John F. Kennedy",

        "Lyndon B. Johnson",

        "Richard Nixon",

        "Gerald Ford",

        "Jimmy Carter",

        "Ronald Reagan",

        "George H. W. Bush",

        "Bill Clinton",

        "George W. Bush",

        "Barack Obama"

    };

در رویداد ()onCreate  از متد ()seListAdapter برای پر کردنListView از عناصر آرایه استفاده میکنیم. شی ArrayAdapter آرایه رشته هایی که در ListView نمایش داده میشوند را مدیریت میکند.در این مثال این ابزار را در حالت نمایش simple_list_item_1 تنظیم کردیم:

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(getActivity(),

            android.R.layout.simple_list_item_1, presidents));

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

public void onListItemClick(ListView parent, View v,

    int position, long id)

    {         

        Toast.makeText(getActivity(),

            "You have selected " + presidents[position],

            Toast.LENGTH_SHORT).show();

    }

در نهایت هردو فرگمنت را به اکتیویتی اضافه میکنیم

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

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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="horizontal" >



<fragment

    android:name="net.learn2develop.ListFragmentExample.Fragment1"

    android:id="@+id/fragment1"

    android:layout_weight="0.5"

    android:layout_width="0dp"

    android:layout_height="200dp" />



<fragment

    android:name="net.learn2develop.ListFragmentExample.Fragment1"

    android:id="@+id/fragment2"

    android:layout_weight="0.5"

    android:layout_width="0dp"

    android:layout_height="300dp" />



</LinearLayout>

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

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

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

پاسخ دهید

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