直奔主题~!
结构如图:

main.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
showcontent.xml代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center"> <ImageView android:layout_width="100dip" android:layout_height="100dip" android:src="@drawable/icon" android:id="@+id/iv"></ImageView> <TextView android:text="今晚打老虎" android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView> </LinearLayout> </LinearLayout>
Control_ListView_LoadingActivity.java代码:
public class Control_ListView_LoadingActivity extends ListActivity implements
OnScrollListener {
private LayoutParams layoutParams1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
private LayoutParams layoutParams2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
private ProgressBar pb;
private TextView tv;
private int lastItem = 0;
mylistener adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
Layout_initialize();
}
public void Layout_initialize() {
LinearLayout ll1 = new LinearLayout(
Control_ListView_LoadingActivity.this);
pb = new ProgressBar(Control_ListView_LoadingActivity.this);
tv = new TextView(Control_ListView_LoadingActivity.this);
pb.setPadding(0, 0, 15, 0);
ll1.addView(pb, layoutParams1);
tv.setText("正在加载...");
tv.setGravity(Gravity.CENTER_HORIZONTAL);
ll1.addView(tv, layoutParams2);
ll1.setGravity(Gravity.CENTER);
LinearLayout loadingLayout = new LinearLayout(this);
loadingLayout.addView(ll1, layoutParams1);
loadingLayout.setGravity(Gravity.CENTER);
ListView listView = getListView();
listView.addFooterView(loadingLayout);
registerForContextMenu(listView);
adapter = new mylistener(Control_ListView_LoadingActivity.this);
setListAdapter(adapter);
listView.setOnScrollListener(Control_ListView_LoadingActivity.this);
}
Handler hd = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
// super.handleMessage(msg);
if (msg.what == 123) {
adapter.notifyDataSetChanged();
// setListAdapter(adapter);
}
}
};
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
lastItem = firstVisibleItem + visibleItemCount - 1;
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
// 这里并没有执行 ,所以可以放到onscroll里进行解决,原因暂定
if(scrollState==OnScrollListener.SCROLL_STATE_IDLE)
{
Toast.makeText(Control_ListView_LoadingActivity.this, "没有调用", Toast.LENGTH_LONG).show();
}
if (lastItem == adapter.count) {
adapter.count += 5;
Message msg = hd.obtainMessage(123);
hd.sendMessage(msg);
}
}
class mylistener extends BaseAdapter {
Context ct;
int count = 5;
public mylistener(Context ct) {
this.ct = ct;
}
public int getCount() {
// TODO Auto-generated method stub
return count;
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
// return null;
LayoutInflater lif = getLayoutInflater();
convertView = lif.inflate(R.layout.showcontent, null);
return convertView;
}
}
}
浙公网安备 33010602011771号