آموزش SQL Server
آموزش SQL Server – قسمت هجدهم
1395-03-23
دانلود پروژه سایت شرکت دارویی و بهداشتی با php
دانلود پروژه سایت شرکت دارویی و بهداشتی با php
1395-03-26
آموزش برنامه نویسی اندروید

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

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

ارتباط بین فرگمنت ها در اندروید – برنامه نویسی اندروید – قسمت هفدهم

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

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

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

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

میتوان از همان پروژه ای که در آموزش قبل توضیح داده شد استفاده کرد یا پروژه جدیدی ایجاد کرد.سپس در قسمت  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();

مدرس : خانم مهندس منطق

فرگمنت fragment در اندروید – برنامه نویسی اندروید – قسمت شانزدهم

اجرای برنامه های بومی اندروید با اینتنت ها – برنامه نویسی اندروید – قسمت هجدهم

پاسخی بگذارید

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