Razieh Shahraki

بارگذاری اطلاعات با اسکرول کردن لیست

1 ارسال در این موضوع قرار دارد

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

در این پست نحوه ایجاد این مدل بارگذاری را آموزش می دهیم.

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

در فایل activity_main.xml کد زیر را قرار دهید.

[shcode=xml]

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:paddingBottom="@dimen/activity_vertical_margin"

    tools:context=".MainActivity">

   

        android:id="@+id/load"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

[/shcode]

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

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

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

   

        android:layout_margin="5dp"

        android:id="@+id/progressBar"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"/>

[/shcode]

در فایل MainActivity.java کد زیر را قرار دهید.

[shcode=java]package com.example.refreshloaddata;

import java.util.ArrayList;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.AbsListView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class MainActivity extends Activity {

    ListView listView;

    String[] arrayS = new String[] { "a", "b", "c", "d", "e", "f", "g", "h",

            "i", "j", "k", "l", "m", "n", "o", "p" };

    String[] arrayS2 = new String[] { "a1", "b1", "c1", "d1", "e1", "f1", "g1",

            "h1", "i1", "j1", "k1", "l1", "m1", "n1", "o1", "p1" };

    int pageCount = 1;

    View footer;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.load);

        final ArrayList list = new ArrayList();

        for (int i = 0; i < arrayS.length; i++) {

            list.add(arrayS);

        }

        // Add footer view

        footer = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE))

                .inflate(R.layout.progress, null, false);

        listView.addFooterView(footer);

        final ArrayAdapter ad = new ArrayAdapter(MainActivity.this,

                android.R.layout.simple_list_item_1, list);

        listView.setAdapter(ad);

        // Implementing scroll refresh

        listView.setOnScrollListener(new AbsListView.OnScrollListener() {

            @Override

            public void onScrollStateChanged(AbsListView absListView, int i) {

            }

            @Override

            public void onScroll(AbsListView absListView, int firstItem,

                    int visibleItemCount, final int totalItems) {

                Log.e("Get position", "--firstItem:" + firstItem

                        + "  visibleItemCount:" + visibleItemCount

                        + "  totalItems:" + totalItems + "  pageCount:"

                        + pageCount);

                int total = firstItem + visibleItemCount;

                // Total array list i have so it

                if (pageCount < 2) {

                    if (total == totalItems) {

                        // Execute some code after 15 seconds have passed

                        Handler handler = new Handler();

                        handler.postDelayed(new Runnable() {

                            public void run() {

                                for (int i = 0; i < arrayS2.length; i++) {

                                    list.add(arrayS2);

                                }

                                ad.notifyDataSetChanged();

                                listView.setAdapter(ad);

                                listView.setSelection(totalItems);

                                pageCount++;

                            }

                        }, 15000);

                    }

                } else {

                    Log.e("hide footer", "footer hide");

                    listView.removeFooterView(footer);

                }

            }

        });

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        // Handle action bar item clicks here. The action bar will

        // automatically handle clicks on the Home/Up button, so long

        // as you specify a parent activity in AndroidManifest.xml.

        int id = item.getItemId();

        // noinspection SimplifiableIfStatement

        if (id == R.id.action_settings) {

            return true;

        }

        return super.onOptionsItemSelected(item);

    }

}

[/shcode]

خروجی برنامه به صورت زیر می باشد

[align=center]333x592http://trinitytuts.com/wp-content/uploads/2015/01/media-20150104.png[/img][/align]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری