button是放在listview最底部的 利用addFooterview 将button布局加入
布局内容
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/loadmore_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/loadmore_btn" android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_marginTop="0.0dip" android:layout_centerHorizontal="true" android:background="@drawable/newslist_item_selector" android:textSize="18.0dip" android:textColor="@color/loadmore_btn_selector" android:text="加载更多" /> <ProgressBar android:id="@+id/loadmore_progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:layout_marginRight="15.0dip" android:layout_alignRight="@id/loadmore_btn" android:layout_centerVertical="true" style="?android:attr/progressBarStyleSmall" /> <TextView android:id="@+id/loadmore_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/loadmore_btn" android:enabled="false" android:textSize="12.0dip" android:background="@color/white" android:focusable="false" android:focusableInTouchMode="false" android:visibility="invisible" android:text="加载更多" android:editable="false" /> </RelativeLayout>因为考虑到 我们服务器端只有10条数据 所以我们一次加载5条数据
private final int NEWSCOUNT = 5; //返回新闻数目
然后定义一个LayoutInflater 准备加入布局
private LayoutInflater mInflater;
然后再getSpeCateNews 中加入2个参数 一个是从哪里开始加载的 一个是是否是第一次加载
private void getSpeCateNews(int cid,List<HashMap<String, Object>> newsList,int startnid,Boolean firstTimes)
{
if (firstTimes)
{
//如果是第一次,则清空集合里数据
newsList.clear();
}
}
其实中url参数也要改下
String url = "http://192.168.1.12:8080/web/getSpecifyCategoryNews?cid="
+ cid + "&startnid="+startnid+"&count="+NEWSCOUNT+"";
最后将button实例化 并加入点击事件
Button loadMoreBtn = (Button)findViewById(R.id.loadmore_btn);
loadMoreBtn.setOnClickListener(loadMoreListener);
private OnClickListener loadMoreListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
//获取该栏目下新闻
getSpeCateNews(mCid,mNewsData,mNewsData.size(),false);
//通知ListView进行更新
mNewsListAdapter.notifyDataSetChanged();
}
};
这一次改动的比较多,大家还是看我的源码吧...................