
实现代码如下:
package com.app.test01
import java.util.ArrayList
import java.util.HashMap
import java.util.List
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import android.R.integer
import android.app.Activity
import android.os.Bundle
import android.view.ContextMenu
import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
import android.view.ContextMenu.ContextMenuInfo
import android.widget.AbsListView
import android.widget.AbsListView.OnScrollListener
import android.widget.AdapterView
import android.widget.AdapterView.AdapterContextMenuInfo
import android.widget.BaseAdapter
import android.widget.ListView
import android.widget.TextView
import android.widget.Toast
import com.app.adapter.MyWeixinJSON
import com.app.adapter.MyWeixinList
/**
* @author 402-9
*
*/
public class ListViewPage extends Activity {
private ListView lv
private BaseAdapter mJson
private JSONArray mData = new JSONArray()// JSON数据源
private View view_page_footer// 底部视图
private int num = 1// 加载数据计数
private int count = 50// 总数据
// private boolean flag
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState)
setContentView(R.layout.weixin)
lv = (ListView) findViewById(R.id.lv)
getJSONArray(mData)
mJson = new MyWeixinJSON(mData, this)
view_page_footer = LayoutInflater.from(this).inflate(
R.layout.view_page_footer, null)
lv.addFooterView(view_page_footer)// 添加底部视图
TextView text_page = (TextView) view_page_footer.findViewById(R.id.text_page)
text_page.setOnClickListener(new View.OnClickListener() {
// 点击按钮 追加数据 并通知适配器
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextView tv = (TextView) v
tv.setText("正在加载中...")
getJSONArray(mData)
tv.setText("下一页")
mJson.notifyDataSetChanged()
}
})
lv.setAdapter(mJson)// 绑定适配器
}
/** 数据源JSONArray */
private void getJSONArray(JSONArray jArray) {
try {
for (int i = 1i <= 5i++) {
JSONObject jsonObject = new JSONObject()
jsonObject.put("title", "姓名" + num++)
jsonObject.put("time", "9月29日")
jsonObject.put("info", "我通过了你的好友验证请求,现在我们可以开始对话啦")
jsonObject.put("img", R.drawable.special_spring_head2)
jArray.put(jsonObject)
if (num == count) {
lv.removeFooterView(view_page_footer)
Toast.makeText(this, "没有更多数据了...", Toast.LENGTH_LONG)
.show()
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
其中,所添加的底部视图,只有一个供点击追加的按钮:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:id="@+id/text_page"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="下一页"
android:gravity="center"/>
</LinearLayout>
其中,所添加的底部视图,只有一个供点击追加的按钮:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:id="@+id/text_page"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="下一页"
android:gravity="center"/>
</LinearLayout>
效果图
点击“下一页”,在ListView后追加数据。
追加完成后,清除底部视图。
1.先new
adapter的时候传入list
2.下载数据add添加list
3.将adapter放入listview
这样,如果你多次运行,就会重复往list里面添加数据,就会造成数据重复,所以在第2步list.add之前list.clear(),new
adapter的时候传入list
的时候,重新
new
arraylist();
一次。
ListView list = (ListView) findViewById(R.id.ListView01)
//生成动态数组,加入数据
ArrayList<HashMap<String, Object>>listItem = new ArrayList<HashMap<String, Object>>()
for(int i=0i<10i++)
{
HashMap<String, Object>map = new HashMap<String, Object>()
map.put("ItemImage", R.drawable.checked)//图像资源的ID
map.put("ItemTitle", "Level "+i)
map.put("ItemText", "Finished in 1 Min 54 Secs, 70 Moves! ")
listItem.add(map)
}
//生成适配器的Item和动态数组对应的元素
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源
R.layout.list_items,//ListItem的XML实现
//动态数组与ImageItem对应的子项
new String[] {"ItemImage","ItemTitle", "ItemText"},
//ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}
)
//添加并且显示
list.setAdapter(listItemAdapter)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)