مقالات تخصصی برنامه نویسی اندروید

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

مقالات تخصصی برنامه نویسی اندروید

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

  • ۰
  • ۰

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

 

وارد پوشه layout شده و یک فایل به نام fragmentlayout.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

 

 

fragmentlayout.xml

 

 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

 

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

android:drawSelectorOnTop="false"/>

 

 

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

 

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

android:drawSelectorOnTop="false"/>

 

 

در کد بالا listview را در فرگمنت قرار دادیم.

 

باید یک فایل دیگر در همان پوشه به نام rowlayout.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

 

rowlayout.xml

 

 

xmlns:android="

http://schemas.android.com/apk/res/android

"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

 

android:id="@+id/txtitem"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10dp"

/>

 

 

xmlns:android="

http://schemas.android.com/apk/res/android

"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

 

android:id="@+id/txtitem"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10dp"

/>

 

 

این فایل شکل ظاهری هر آیتم را تنظیم می کند.

 

وارد بخش جاوا شده و یک فایل به نام LstFragment.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

 

LstFragment.java

 

import android.os.Bundle;

import android.support.v4.app.ListFragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class LstFragment extends ListFragment{

 

 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

 

ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragmentlayout, container, false);

 

String[] datasource={"English","Persian","Khmer","Japanese","Russian","Chinese"};

ArrayAdapter adapter=new ArrayAdapter(getActivity(),R.layout.rowlayout,R.id.txtitem,datasource);

setListAdapter(adapter);

setRetainInstance(true);

return rootView;

}

 

// Handle Item click event

public void onListItemClick(ListView l, View view, int position, long id){

ViewGroup viewg=(ViewGroup)view;

TextView tv=(TextView)viewg.findViewById(R.id.txtitem);

Toast.makeText(getActivity(), tv.getText().toString(),Toast.LENGTH_LONG).show();

 

}

 

}

 

import android.os.Bundle;

import android.support.v4.app.ListFragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class LstFragment extends ListFragment{

 

 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

 

ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragmentlayout, container, false);

 

String[] datasource={"English","Persian","Khmer","Japanese","Russian","Chinese"};

ArrayAdapter adapter=new ArrayAdapter(getActivity(),R.layout.rowlayout,R.id.txtitem,datasource);

setListAdapter(adapter);

setRetainInstance(true);

return rootView;

}

 

// Handle Item click event

public void onListItemClick(ListView l, View view, int position, long id){

ViewGroup viewg=(ViewGroup)view;

TextView tv=(TextView)viewg.findViewById(R.id.txtitem);

Toast.makeText(getActivity(), tv.getText().toString(),Toast.LENGTH_LONG).show();

 

}

 

}

زمانی که بروی هرکدام از آیتم ها کیک شود یک Toast نمایش داده می شود اگر کمی دقت کنید متوجه می شوید findViewById کمی متفاوت از findViewById کردن در اکتیویتی معمولی می باشد.

 

 

برای اینکار باید مثل زیر عمل کنید.

 

 

package ir.programchi;

 

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentTransaction;

import android.os.Bundle;

import android.view.MenuItem;

 

public class MainActivity extends FragmentActivity {

 

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

LstFragment lstfragment=(LstFragment)getSupportFragmentManager().findFragmentByTag("lstfragment");

if(lstfragment==null){

lstfragment=new LstFragment();

FragmentTransaction transact=getSupportFragmentManager().beginTransaction();

transact.add(android.R.id.content,lstfragment,"lstfragment");

transact.commit();

 

}

}

 

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentTransaction;

import android.os.Bundle;

import android.view.MenuItem;

 

public class MainActivity extends FragmentActivity {

 

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

LstFragment lstfragment=(LstFragment)getSupportFragmentManager().findFragmentByTag("lstfragment");

if(lstfragment==null){

lstfragment=new LstFragment();

FragmentTransaction transact=getSupportFragmentManager().beginTransaction();

transact.add(android.R.id.content,lstfragment,"lstfragment");

transact.commit();

 

}

}

 

 

 

 

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

  • ۹۹/۰۳/۲۵
  • vahid hasani

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی