Monday, April 30, 2012

Android List with Load more items


Android List with Load more items 


here is the code from list with more items progress bar code please go through 
1. Main.java
  1. package android.test;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. import android.app.Activity;  
  5. import android.app.ProgressDialog;  
  6. import android.os.Bundle;  
  7. import android.os.Handler;  
  8. import android.os.Message;  
  9. import android.view.LayoutInflater;  
  10. import android.view.View;  
  11. import android.widget.AbsListView;  
  12. import android.widget.ArrayAdapter;  
  13. import android.widget.ListView;  
  14. import android.widget.AbsListView.OnScrollListener;  
  15. public class Main extends Activity {  
  16.     private ListView m_listView;  
  17.     private List m_data = new ArrayList<String>();  
  18.     private ArrayAdapter<String> m_adapter;  
  19.     private View m_footerView;  
  20.     private boolean m_bIsLoading = false;  
  21.     private Handler m_handler = new Handler() {  
  22.         @Override  
  23.         public void handleMessage(Message msg) {  
  24.             m_footerView.setVisibility(View.INVISIBLE);  
  25.             for (int i = m_listView.getCount(); i < m_listView.getCount() + 10; ++i) {  
  26.                 m_data.add("test__" + i);  
  27.             }  
  28.             m_adapter.notifyDataSetChanged();  
  29.               
  30.             m_bIsLoading = false;  
  31.         }  
  32.     };  
  33.     /** Called when the activity is first created. */  
  34.     @Override  
  35.     public void onCreate(Bundle savedInstanceState) {  
  36.         super.onCreate(savedInstanceState);  
  37.         setContentView(R.layout.main);  
  38.         m_listView = (ListView) findViewById(R.id.listView1);  
  39.         m_footerView = LayoutInflater.from(this).inflate(R.layout.loading, null);  
  40.         m_listView.addFooterView(m_footerView);  
  41.         m_footerView.setVisibility(View.INVISIBLE);  
  42.         for (int i = 0; i < 10; ++i) {  
  43.             m_data.add("test__" + i);  
  44.         }  
  45.         m_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_data);  
  46.         m_listView.setAdapter(m_adapter);  
  47.         m_listView.setOnScrollListener(new OnScrollListener() {  
  48.             @Override  
  49.             public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {  
  50.                 if (view.getLastVisiblePosition() >= totalItemCount - 1) {  
  51.                     CheckLoadMore();  
  52.                 }  
  53.             }  
  54.             @Override  
  55.             public void onScrollStateChanged(AbsListView view, int scrollState) {  
  56.             }  
  57.         });  
  58.     }  
  59.     private void CheckLoadMore() {  
  60.         if (m_bIsLoading)  
  61.             return;  
  62.         if (m_listView.getFooterViewsCount() != 0) {  
  63.             m_footerView.setVisibility(View.VISIBLE);  
  64.             m_listView.setSelection(m_data.size() - 1);  
  65.             LoadMoreItems();  
  66.         }  
  67.     }  
  68.     private void LoadMoreItems() {  
  69.         m_bIsLoading = true;  
  70.         new Thread() {  
  71.             public void run() {  
  72.                 try {  
  73.                     Thread.sleep(2000);  
  74.                     m_handler.sendEmptyMessage(0);  
  75.                 } catch (InterruptedException e) {  
  76.                     e.printStackTrace();  
  77.                 }  
  78.             };  
  79.         }.start();  
  80.     }  
  81. }  

2. AndroidManifest.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="android.test"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <uses-sdk android:minSdkVersion="7" />  
  7.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  8.         <activity android:name=".Main"  
  9.                   android:label="@string/app_name">  
  10.             <intent-filter>  
  11.                 <action android:name="android.intent.action.MAIN" />  
  12.                 <category android:name="android.intent.category.LAUNCHER" />  
  13.             </intent-filter>  
  14.         </activity>         
  15.     </application>  
  16. </manifest>  


3. loading.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:orientation="horizontal"  
  5.     android:layout_width="fill_parent"  
  6.     android:layout_height="wrap_content"  
  7.     >  
  8. <ProgressBar  
  9.     android:id="@+android:id/progress_large"  
  10.     android:layout_width="60px"  
  11.     android:layout_height="60px"  
  12.     android:layout_marginLeft="120px"  
  13.     android:layout_marginTop="10px"  
  14. >  
  15. </ProgressBar>  
  16. <TextView  
  17.     android:id="@+id/loading_msg"  
  18.     android:layout_width="wrap_content"  
  19.     android:layout_height="wrap_content"  
  20.     android:textSize="30sp"  
  21.     android:text="@string/loading"  
  22.     android:layout_marginLeft="12px"  
  23.     android:layout_marginTop="10px"  
  24.     >  
  25. </TextView>  
  26. </LinearLayout>  

4. 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="vertical" >
    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>


leave your comets


No comments: