2011-06-24 28 views
0

ListViewにページ区切りの概念を適用する必要があります。私のリストビューには、Webサービスから解析されたデータが含まれています。以下は、リストビューでデータをどのように表示したかを示すコードです。androidのListViewのページ設定

try { 
    ArrayList<HashMap<String, String>> arl (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist"); 

     System.out.println("...serialized data.."+arl); 
lv1 = (ListView) findViewById(R.id.lstlodgingresult); 
    adapter = new SimpleAdapter(this, arl, R.layout.custom_row_view, 
        new String[] { "Srno", "Names", "URL", "Address1", "Address2", "Telephone", "Category", "PetH", 
"PetInfo" }, new int[] { R.id.txtSrno,R.id.txtname, R.id.txturl, R.id.txtaddress1, R.id.txtaddress2, R.id.txtphone, R.id.txtcategory, 
R.id.txtpetpolicyH, R.id.txtpetpolicyC } 
); 
lv1.setScrollbarFadingEnabled(false); 
lv1.refreshDrawableState(); 
lv1.setAdapter(adapter); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
+0

は、あなたは上記のコードでは、今直面している問題であり、何より明確なアイデアを与えることができますか? – Android

+0

ページネーションとは何ですか? – Nallath

+0

Hello Nallath、ページネーションは、ページワイズで結果を表示できるコンセプトです。上記のコードは動作しています。しかし、リストビューは、デフォルトで10個のレコードを表示する必要があり、ユーザーが最後のレコードまでスクロールすると、次の10個のレコードがフェッチされます。同様の方法で動作するはずです。 – sandy

答えて

2

あなたが作成したリストには、フッタービューを追加するだけで済みます。次に、フッタービュー(button/image/textの可能性があります)のために、ClickListenerを設定し、Listenerでアイテムをリストに追加し、アクティビティを再度リフレッシュします。私はこれであなたを助ける少しのチュートリアルを追加しています。私は、ページネーションのために、以下の方法を使用

リストクラス:

public class customListView extends Activity implements OnClickListener{ 

    private static class EfficientAdapter extends BaseAdapter { 
    private LayoutInflater mInflater; 
    Context context; 
    public EfficientAdapter(Context context) { 
     this.context = context; 
     mInflater = LayoutInflater.from(context); 

    } 

    public int getCount() { 
     return add_Names.size(); 
    } 

    public Object getItem(int position) { 
    return position; 
    } 

    public long getItemId(int position) { 
    return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
    convertView = mInflater.inflate(R.layout.listcontent, null); 
    holder = new ViewHolder(); 
    holder.text = (TextView) convertView 
    .findViewById(R.id.txt1); 
    holder.text2 = (TextView) convertView 
    .findViewById(R.id.txt2); 
    holder.text3 = (TextView) convertView 
    .findViewById(R.id.txt3); 



    convertView.setTag(holder); 
    } else { 
    holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.text.setText(add_Names.get(position).toString()); 
    holder.text2.setText(location.get(position).toString()); 
    holder.text3.setText(details.get(position).toString()); 

    return convertView; 
    } 

    static class ViewHolder { 
    TextView text; 
    TextView text2; 
    TextView text3; 
    } 
    }//end of efficient Adapter Class 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listview); 
     adapter = new EfficientAdapter(this); 

    l1 = (ListView) findViewById(R.id.ListView01); 
    View footerView = 
     ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layout_footer, null, false); 


    l1.addFooterView(footerView); 



    l1.setAdapter(adapter); 
    mLayout = (LinearLayout) footerView.findViewById(R.id.footer_layout); 
    more = (Button) footerView.findViewById(R.id.moreButton); 
    more.setOnClickListener(this); 

    l1.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) { 
     Toast.makeText(getBaseContext(), "You clciked "+add_Names.get(arg2).toString(), Toast.LENGTH_LONG).show(); 

     } 
    });    
    } 

@Override 
    public void onClick(View v) { 
     switch(v.getId()) 
     { 
     case R.id.moreButton: 
      //Your code to add some more data into list and then call the following to refresh your lits 
     adapter.notifyDataSetChanged(); 
      break; 
     }//end of switch 
}//end of onClick 


}//end of Custom List view class 

layout_footerview.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="wrap_content" 
android:paddingTop="7dip" 
android:paddingBottom="7dip" 
android:orientation="horizontal" 
android:gravity="center"> 
<LinearLayout 
android:id="@+id/footer_layout" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:gravity="center" 
android:layout_gravity="center"> 

<Button 
    android:text="Get more.." 
    android:id="@+id/moreButton" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="14dip" 
    android:textStyle="bold"> 
</Button> 

</LinearLayout> 
</LinearLayout> 

listview.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<ListView android:id="@+id/ListView01" android:layout_height="wrap_content" 
     android:layout_width="fill_parent"> 
</ListView> 
</RelativeLayout> 

リスト-content.xml:は(uはあなたのリストの行であることを好きなように変更します)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView android:id="@+id/image1" android:layout_width="wrap_content"   android:layout_height="wrap_content" 
android:src="@drawable/icon"></ImageView> 

    <TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/txt1"  android:layout_toRightOf="@+id/image1" 
    android:text="Test Description" android:textSize="15dip" android:textStyle="bold">  
</TextView> 

<TextView android:layout_width="wrap_content" 
android:layout_height="wrap_content" android:id="@+id/txt2" android:layout_below="@+id/txt1" android:layout_toRightOf="@+id/image1" 
android:text="Address" android:textSize="10dip"></TextView> 

<TextView android:layout_width="wrap_content" 
android:layout_height="wrap_content" android:id="@+id/txt3" android:layout_below="@+id/txt2" android:layout_toRightOf="@+id/image1" 
android:text="Details" android:textSize="10dip" ></TextView> 

    </RelativeLayout>  

私はこのホップdefinetlyお手伝いを致します。!

これをtrueとマークしてください。これがあなたを助けたら。

おかげ シャー..

+1

こんにちはsHaH、私はこのコードを実行しようとしているときにのみ、ListViewのGetMoreボタンが表示されます。 – sandy

+0

あなたはまだエラーが終了していますか?遅くて申し訳ありません – Shah

+0

ありがとうございました。私はページ分割を行っています。 – sandy

関連する問題