آموزش SQL Server
آموزش SQL Server – قسمت هجدهم
خرداد ۲۳, ۱۳۹۵
دانلود پروژه سایت شرکت دارویی و بهداشتی با php
دانلود پروژه سایت شرکت دارویی و بهداشتی با php
خرداد ۲۶, ۱۳۹۵

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

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

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

در قسمت هفدهم آموزش اندروید در ادامه مبحث فرگمنت ها , مبحث تعامل بین فرگمنت ها را که یکی از مهم ترین ویژگی های فرگمنت ها میباشد را به همراه مثالی آموزش داده ایم.

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

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

تعامل بین فرگمنت ها

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

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

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

<?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"

android:background="#00FF00"

>

<TextView

android:id="@+id/lblFragment1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="This is fragment #1"

android:textColor="#000000"

android:textSize="25sp" />

</LinearLayout>

و عبارات فوق را به بخش fragment2.xml اضافه میکنیم

<?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"

android:background="#FFFE00"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="This is fragment #2"

android:textColor="#000000"

android:textSize="25sp" />

<Button

android:id="@+id/btnGetText"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Get text in Fragment #1"

android:textColor="#000000"

android:onClick="onClick" />

</LinearLayout>

و دو فرگمنت را طبق کدنویسی زیر به قسمت 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.Fragments.Fragment1"

        android:id="@+id/fragment1"

        android:layout_weight="1"

        android:layout_width="0px"

        android:layout_height="match_parent" />

    <fragment

        android:name="net.learn2develop.Fragments.Fragment2"

        android:id="@+id/fragment2"

        android:layout_weight="1"

        android:layout_width="0px"

        android:layout_height="match_parent" />

</LinearLayout>

حال نوبت به بخش کلاس فرگمنت ها رسیده پس در فایل Fragment1.java چنین کدنویسی میکنیم

package net.learn2develop.Fragments;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

public class Fragment1 extends Fragment {

    @Override

    public View onCreateView(LayoutInflater inflater,

    ViewGroup container, Bundle savedInstanceState) {

        //---Inflate the layout for this fragment---     

        return inflater.inflate(

            R.layout.fragment1, container, false);

    }

و فایل Fragment2.java نیز بدین صورت

package net.learn2develop.Fragments;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class Fragment2 extends Fragment {

    @Override

    public View onCreateView(LayoutInflater inflater,

    ViewGroup container, Bundle savedInstanceState) {

        //---Inflate the layout for this fragment---

        return inflater.inflate(

            R.layout.fragment2, container, false);

    }

    @Override

    public void onStart() {

        super.onStart();       

        //---Button view---

        Button btnGetText = (Button)

            getActivity().findViewById(R.id.btnGetText);

        btnGetText.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                TextView lbl = (TextView)

                    getActivity().findViewById(R.id.lblFragment1);

                Toast.makeText(getActivity(), lbl.getText(),

                    Toast.LENGTH_SHORT).show();               

            }

        });       

    }

}

و درون فایل FragmentsActivity.java نیز بدین ترتیب

package net.learn2develop.Fragments;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

public class FragmentsActivity extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

        setContentView(R.layout.main);                    

        }   

    public void onClick(View v) {

        TextView lbl = (TextView)

            findViewById(R.id.lblFragment1);

        Toast.makeText(this, lbl.getText(),

            Toast.LENGTH_SHORT).show();               

    }

}

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

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

روش کار

از آنجا که فرگمنت ها در اکتیویتی ها enable شده اند. میتوانید با استفاده از متد getActivity() اکتیویتی والد را پیدا کرده  و سپس با استفاده از متد findViewById() عنصری را که در فرگمنت است پیدا کنید:

TextView lbl = (TextView)

           getActivitty().findViewById(R.id.lblFragment1);

        Toast.makeText(this, lbl.getText(),

            Toast.LENGTH_SHORT).show();

متد getActivity() اکتیویتی مربوط به فرگمنت کنونی را برمیگرداند. البته بجای این کار میتوان کدزیر را اضافه کرد

TextView lbl = (TextView)

            findViewById(R.id.lblFragment1);

        Toast.makeText(this, lbl.getText(),

            Toast.LENGTH_SHORT).show();

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

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

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

پاسخ دهید

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