ListView加载条目
来源:互联网 发布:伊朗 朝鲜 知乎 编辑:程序博客网 时间:2024/06/01 21:35
package com.bwei.lx;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import com.bwei.lx.bean.News;
import com.bwei.lx.bean.NewsData;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
ListView lv;
NewsData nd;
List<News> list;
MyAdapter adapter;
int mCurrentPage=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv);
initData();
adapter=new MyAdapter();
lv.setAdapter(adapter);
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
if(view.getLastVisiblePosition()==list.size()-1)
{
mCurrentPage++;
loadMoreData();
}
break;
default:
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
});
}
private void initData() {
list=new ArrayList<News>();
loadMoreData();
}
private void loadMoreData() {
new AsyncTask<String, String, NewsData>() {
@Override
protected NewsData doInBackground(String... params) {
getData();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
ImageLoader.getInstance().init(configuration);
return null;
}
private void getData() {
try {
URL url=new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+mCurrentPage);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int code=connection.getResponseCode();
if(code==200)
{
Gson gson=new Gson();
nd=gson.fromJson(new InputStreamReader(connection.getInputStream(),"GBK"), NewsData.class);
list.addAll(nd.getNewslist());
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onPostExecute(NewsData result) {
adapter.notifyDataSetChanged();
super.onPostExecute(result);
}
}.execute();
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(MainActivity.this, R.layout.item, null);
holder=new ViewHolder();
holder.tv_title=(TextView) convertView.findViewById(R.id.tv_title);
holder.tv_desc = (TextView) convertView.findViewById(R.id.tv_desc);
holder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
holder.iv = (ImageView) convertView.findViewById(R.id.iv);
convertView.setTag(holder);
}
else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv_title.setText(list.get(position).getTitle());
holder.tv_desc.setText(list.get(position).getDescription());
holder.tv_time.setText(list.get(position).getCtime());
ImageLoader.getInstance().displayImage(list.get(position).getPicUrl(), holder.iv);
return convertView;
}
class ViewHolder{
TextView tv_title,tv_desc,tv_time;
ImageView iv;
}
}
}
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import com.bwei.lx.bean.News;
import com.bwei.lx.bean.NewsData;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
ListView lv;
NewsData nd;
List<News> list;
MyAdapter adapter;
int mCurrentPage=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.lv);
initData();
adapter=new MyAdapter();
lv.setAdapter(adapter);
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
if(view.getLastVisiblePosition()==list.size()-1)
{
mCurrentPage++;
loadMoreData();
}
break;
default:
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
});
}
private void initData() {
list=new ArrayList<News>();
loadMoreData();
}
private void loadMoreData() {
new AsyncTask<String, String, NewsData>() {
@Override
protected NewsData doInBackground(String... params) {
getData();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
ImageLoader.getInstance().init(configuration);
return null;
}
private void getData() {
try {
URL url=new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+mCurrentPage);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int code=connection.getResponseCode();
if(code==200)
{
Gson gson=new Gson();
nd=gson.fromJson(new InputStreamReader(connection.getInputStream(),"GBK"), NewsData.class);
list.addAll(nd.getNewslist());
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onPostExecute(NewsData result) {
adapter.notifyDataSetChanged();
super.onPostExecute(result);
}
}.execute();
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(MainActivity.this, R.layout.item, null);
holder=new ViewHolder();
holder.tv_title=(TextView) convertView.findViewById(R.id.tv_title);
holder.tv_desc = (TextView) convertView.findViewById(R.id.tv_desc);
holder.tv_time = (TextView) convertView.findViewById(R.id.tv_time);
holder.iv = (ImageView) convertView.findViewById(R.id.iv);
convertView.setTag(holder);
}
else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv_title.setText(list.get(position).getTitle());
holder.tv_desc.setText(list.get(position).getDescription());
holder.tv_time.setText(list.get(position).getCtime());
ImageLoader.getInstance().displayImage(list.get(position).getPicUrl(), holder.iv);
return convertView;
}
class ViewHolder{
TextView tv_title,tv_desc,tv_time;
ImageView iv;
}
}
}
阅读全文
0 0
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- listview多条目加载
- Listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView加载条目
- ListView多条目加载
- Listview多条目加载
- ListView多条目加载
- ImageLoader的简单使用
- 2017"百度之星"程序设计大赛
- 修改图片大小
- 关于Java中static
- Python基础语法之内置的数据类型list和tuple
- ListView加载条目
- 侧拉菜单显示
- angularjs中ng-options的用法
- 欢迎使用CSDN-markdown编辑器
- 【软工学习】第十三章——UML建模技术
- linux终端关闭时为什么会导致在其上启动的进程退出?
- 主Activity的布局
- 主方法
- LeetCode 56. Merge Intervals 合并区间