لیست ویو در اندروید

منتشرشده توسط حامد قنبری در تاریخ

در توسعه آندروید، هر زمان که میخواهیم یک لیست عمودی از آیتم های رونده را نشان دهیم، از ListView استفاده خواهیم کرد که داده ها را با استفاده از یک آداپتور ذخیره می کند. ساده ترین آداپتور برای استفاده در لیست ویو ArrayAdapter نامیده می شود زیرا آداپتور ArrayList از اشیا را به View Items منتقل می کند تا در container ListView بارگذاری شود.

به منظور درک بهتر موضوع بهتر است کارمان را با یک مثال شروع کنیم.

گر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید.

2. هنگامی که پروژه ایجاد  شد، کلاس اصلی خود را با نام MainActivity باز کنید و کلاس خود را به نوع ListActivity گسترش دهید.

 

public class MainActivity extends ListActivity

حالا ما به یک فایل منابع رشته نیاز داریم تا تمام برچسبهای لیست را ذخیره کند. بنابراین یک فایل XML در زیر پوشه values ایجاد کنید و آن را به عنوان list_data.xml نامگذاری کنید و کد زیر را وارد کنید.
(راست کلیک بر  ( res / value⇒ new⇒ value Resource )

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="array_job">
        <item>مهندس</item>
        <item>کشاورز </item>
        <item>کارگر</item>
        <item>پزشک</item>
        <item>روزنامه نگار</item>
        <item>مهندس</item>
        <item>آشپز</item>
        <item>خیاط</item>
        <item>بزاز</item>
        <item>آرایشگر</item>
    </string-array>
</resources>

در ListView هر آیتم لیست یک طرح XML خواهد بود، بنابراین ما می توانیم هر مورد لیست را سفارشی کنیم. یک فایل XML را در پوشه res / layout ایجاد کنید و آن را به عنوان list_item.xml نامگذاری کنید و کد زیر را  در آن تایپ کنید. این طرح xml یک ردیف آیتم لیست است.

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    android:textSize="16dip"
    android:textColor="@android:color/background_dark"
    android:textStyle="bold" >
</TextView>

 

در مرحله بعد کلاس اصلی پروژه یعنی MainActivity  را باز کنید . و کدهای زیر را در آن وارد کنید.

package com.psrd.ir.listview;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // فراخوانی آرایه  مربوط به متغیر از پوشه value 
        String[] jobs = getResources().getStringArray(R.array.array_job);

        // متصل کردن آرایه های به لیست آداپتور
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, jobs));

        ListView lv = getListView();

        // فراخوانی آیتم های مربوط به لیست با کلیک بر روی آنها
        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                // selected item
                String product = ((TextView) view).getText().toString();

                // Launching new Activity on selecting single List Item
                Toast.makeText(getApplicationContext(),product,Toast.LENGTH_LONG).show();

            }
        });
    }
}

در نهایت پروژه را اجرا کنید.

 


1 دیدگاه

مهران · می 13, 2019 در 11:08 ب.ظ

سلام دوست عزیز

چطور میشه از داخل setOnScrollListener آی دی یه TextView که داخل ویو BaseAdapter تعریف کردیم رو بدست بیاریم؟

هرروشی رو امتحان کردم اپلیکیشن کرش میکنه.

ممنون از سایت خوبتون

دیدگاهتان را بنویسید

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

-- بارگیری کد امنیتی --