ListView中加上加FootView和自动加载listview条目
package com.accesscompany.testlistadapter;import java.util.ArrayList;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.graphics.Color;import android.graphics.Paint;import android.os.Bundle;import android.text.SpannableStringBuilder;import android.text.Spanned;import android.text.style.UnderlineSpan;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.AbsListView.OnScrollListener;import android.widget.LinearLayout.LayoutParams;public class MainActivity extends Activity {private static final String TAG = "MainActivity";/** * 设置布局显示属性 */private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);/** * 设置布局显示目标最大化属性 */private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);private ProgressBar progressBar;// My Adapter, based on BaseAdapterprivate MyListAdapter mAdapter = null;private int lastItem = 0;LinearLayout loadingLayout;ListView mainList;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView we = (TextView) findViewById(R.id.wen);SpannableStringBuilder style = new SpannableStringBuilder("谢红霞");style.setSpan(new UnderlineSpan(), 0, 3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);we.setText(style);LinearLayout layout = new LinearLayout(this);// 设置布局 水平方向layout.setOrientation(LinearLayout.HORIZONTAL);// 进度条progressBar = new ProgressBar(this);// 进度条显示位置progressBar.setPadding(0, 0, 15, 0);// 把进度条加入到layout中// layout.addView(progressBar, mLayoutParams);// 文本内容TextView textView = new TextView(this);textView.setText("展开更多");textView.setGravity(Gravity.CENTER);textView.setPadding(100, 10, 0, 20);textView.setTextColor(Color.BLUE);textView.setTextSize(20);// 把文本加入到layout中layout.addView(textView, FFlayoutParams);// 设置layout的重力方向,即对齐方式是layout.setGravity(Gravity.CENTER);// 设置ListView的页脚layoutloadingLayout = new LinearLayout(this);loadingLayout.addView(layout, mLayoutParams);loadingLayout.setGravity(Gravity.CENTER);loadingLayout.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {/* * if (adapter.count<=41) { adapter.count += 10; * adapter.notifyDataSetChanged(); ** } */if (mAdapter.mData.size() < 50) {for (int i = 0; i < 10; i++) {MyListItem list_item = new MyListItem();list_item.setTitle("商家XXX" + i);list_item.setText("XXXXXXXXXX街道XXX楼" + i);mAdapter.addItem(list_item);}mAdapter.notifyDataSetChanged();} else {mainList.removeFooterView(loadingLayout);}}});mAdapter = new MyListAdapter();for (int i = 0; i < 10; i++) {MyListItem list_item = new MyListItem();list_item.setTitle("title" + i);list_item.setText("text" + i);mAdapter.addItem(list_item);}mainList = (ListView) findViewById(R.id.mainlist);mainList.addFooterView(loadingLayout);mainList.setAdapter(mAdapter);mainList.setOnScrollListener(new OnScrollListener() {public void onScroll(AbsListView v, int firstVisibleItem,int visibleItemCount, int totalItemCount) {Log.i(TAG, "Scroll>>>first: " + firstVisibleItem+ ", visible: " + visibleItemCount + ", total: "+ totalItemCount);lastItem = firstVisibleItem + visibleItemCount - 1;Log.i(TAG, "Scroll>>>lastItem:" + lastItem);// 显示50条ListItem,即0-49,因为onScroll是在“滑动”执行过之后才触发,所以用adapter.count<=41作条件/* * if (adapter.count<=41) { if * (firstVisibleItem+visibleItemCount==totalItemCount) { * adapter.count += 10; adapter.notifyDataSetChanged(); * listView.setSelection(lastItem); int * currentPage=adapter.count/10; * Toast.makeText(getApplicationContext(), "第"+currentPage+"页", * Toast.LENGTH_LONG).show(); } } else { * listView.removeFooterView(loadingLayout); } */}@Overridepublic void onScrollStateChanged(AbsListView v, int state) {if (lastItem == mAdapter.mData.size()&& state == OnScrollListener.SCROLL_STATE_IDLE) {/* * Log.i(TAG,"ScrollStateChanged>>>state:"+state+"lastItem:" * + lastItem); * //显示50条ListItem,即0-49,因为onScrollStateChanged是在 * “拖动滑动”执行过之后才触发,所以用adapter.count<=41作条件 if * (adapter.count<=41) { adapter.count += 10; * adapter.notifyDataSetChanged(); ** }else{ listView.removeFooterView(loadingLayout); } */}}});}private OnClickListener listenBtnListener = new OnClickListener() {public void onClick(View v) {Log.i(TAG, "Clicked view: " + v + ", parent: " + v.getParent());ViewHolder vh = (ViewHolder) ((View) v.getParent()).getTag();AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);ad.setTitle("Listen button clicked");ad.setMessage("The " + vh.position + " listen button clicked");ad.setPositiveButton("Okay", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int id) {Log.i(TAG, "Listen button click dialog disposing...");}});ad.show();}};private OnClickListener downloadBtnListener = new OnClickListener() {public void onClick(View v) {Log.i(TAG, "Clicked view: " + v + ", parent: " + v.getParent());ViewHolder vh = (ViewHolder) ((View) v.getParent()).getTag();AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);ad.setTitle("Download button clicked");ad.setMessage("The " + vh.position + " download button clicked");ad.setPositiveButton("Okay", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int id) {Log.i(TAG, "Download button click dialog disposing...");}});ad.show();}};private class MyListAdapter extends BaseAdapter {private ArrayList<MyListItem> mData = new ArrayList<MyListItem>();private LayoutInflater mInflater;public MyListAdapter() {mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);}public void addItem(MyListItem item) {mData.add(item);notifyDataSetChanged();}@Overridepublic int getCount() {return mData.size();}@Overridepublic MyListItem getItem(int position) {return mData.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Log.i(TAG, "getView " + position + " " + convertView + "; parent: "+ parent);ViewHolder holder = null;if (convertView == null) {convertView = mInflater.inflate(R.layout.listitem_layout, null);holder = new ViewHolder();holder.tvTitle = (TextView) convertView.findViewById(R.id.itemTitle);holder.tvText = (TextView) convertView.findViewById(R.id.itemText);holder.btnDownload = (TextView) convertView.findViewById(R.id.btnDownload);holder.position = position;convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}holder.tvTitle.setText(mData.get(position).getTitle());holder.tvText.setText(mData.get(position).getText());holder.btnDownload.setText("不完整");return convertView;}}public class ViewHolder {public TextView tvTitle;public TextView tvText;public TextView btnDownload;public int position;}}package com.accesscompany.testlistadapter;public class MyListItem {private String title = null;private String text = null;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getText() {return text;}public void setText(String text) {this.text = text;}}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:id="@+id/RelativeLayout01"android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"android:layout_height="100dip"><TextView android:text="TextView01" android:layout_height="wrap_content"android:textSize="18dip" android:textStyle="bold"android:layout_marginLeft="13dip" android:layout_marginTop="10dip"android:textColor="@color/blue" android:layout_width="200dip"android:id="@+id/itemTitle" /><TextView android:text="TextView02" android:textColor="@color/black"android:textSize="18dip" android:layout_height="wrap_content"android:layout_marginBottom="10dip"android:paddingBottom="10dip"android:layout_marginLeft="13dip"android:layout_width="200dip" android:layout_below="@+id/itemTitle"android:id="@+id/itemText" /><TextView android:layout_width="60dip" android:layout_height="wrap_content"android:id="@+id/btnDownload" android:layout_alignParentRight="true"android:layout_centerVertical="true" android:focusable="false"android:textColor="@color/black"android:scaleType="fitCenter" /></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:background="@drawable/transparent_background"android:layout_width="fill_parent" android:layout_height="fill_parent"><LinearLayout android:layout_width="wrap_content"android:orientation="horizontal" android:layout_height="50dip"><TextView android:text="重新定位" android:layout_width="220dip"android:textColor="@color/blue" android:textSize="20dip"android:paddingLeft="5dip" android:paddingTop="5dip"android:layout_height="wrap_content" /><TextView android:text="新建商家" android:layout_width="wrap_content"android:id="@+id/wen"android:layout_height="wrap_content" android:textColor="@color/blue"android:textSize="20dip" android:paddingLeft="5dip"android:paddingTop="5dip" android:layout_alignParentRight="true" /></LinearLayout><LinearLayout android:layout_width="wrap_content"android:orientation="horizontal" android:layout_height="50dip"><EditTextandroid:layout_width="200dip" android:layout_marginLeft="20dip" android:id="@+id/at"android:textColor="@color/black" android:textSize="20dip"android:paddingLeft="5dip" android:paddingTop="5dip"android:layout_height="wrap_content" /><Button android:text="搜索" android:layout_width="80dip"android:layout_height="wrap_content" android:textColor="@color/black"android:textSize="20dip" android:paddingLeft="5dip"android:paddingTop="5dip" android:layout_alignParentRight="true" /></LinearLayout><ListView android:layout_width="wrap_content"android:layout_height="300dip" android:cacheColorHint="#00000000"android:divider="#000000" android:dividerHeight="1px"android:stretchMode="columnWidth" android:id="@+id/mainlist"></ListView><TextView android:text="选项" android:layout_width="wrap_content"android:layout_height="wrap_content" android:textColor="@color/blue"android:textSize="20dip" android:paddingLeft="235dip"android:paddingTop="15dip" android:layout_alignParentRight="true" /></LinearLayout>
页:
[1]