package com.example.liqianqianzk;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import com.example.liqianqianzk.bean.Data;
import com.example.liqianqianzk.bean.DataBean;
import com.example.liqianqianzk.dao.UserDao;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Bitmap;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
/**
* listview 展示
* @author 李倩
* @ date 2017-8-7
*/
public class OtherActivity extends Activity {
UserDao dao;
ListView lv;
List<Data> list;
private DataBean da;
private MyAdapter aadapter;
private DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
lv=(ListView) findViewById(R.id.lv);
dao=new UserDao(this);
//第一步:初使化-缺省配置
ImageLoaderConfiguration config=ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(config);
//第二步:进行图片缓存及显示图片的配置 使用默认配置
options = DisplayImageOptions.createSimple();
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String result=getData();
return result;
}
@Override
protected void onPostExecute(String result) {
aadapter = new MyAdapter();
lv.setAdapter(aadapter);
//删除
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
dao.del(list.get(position).getNews_title());
list.remove(position);
aadapter.notifyDataSetChanged();
}
});
super.onPostExecute(result);
}
}.execute();
}
//解析
protected String getData() {
String result="";
try {
URL url=new URL("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
int code = conn.getResponseCode();
if (code==200) {
Gson gson=new Gson();
da = gson.fromJson(new InputStreamReader(conn.getInputStream()), DataBean.class);
list=new ArrayList<Data>();
list=da.getData();
//添加数据库
dao.add(list);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
// TODO Auto-generated method stub
}
/**
* 2、 自定义适配器继承BaseAdapter,实现父类的方法(10分)
3、 ListView优化(convertView和静态内部类优化)(10分)
* @author 李倩
* @ date 2017-8-7
*/
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) {
// TODO Auto-generated method stub
final ViewHolder holder;
if (convertView==null) {
convertView =View.inflate(OtherActivity.this, R.layout.item, null);
holder=new ViewHolder();
holder.tv_news_title=(TextView) convertView.findViewById(R.id.tv_news_title);
holder.iv_pic_url=(ImageView) convertView.findViewById(R.id.iv_pic_url);
convertView.setTag(holder);
}else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv_news_title.setText(list.get(position).getNews_title());
//第三步 图片监听加载
ImageLoader.getInstance().loadImage(list.get(position).getPic_url(), options, new ImageLoadingListener() {
//开始加载
@Override
public void onLoadingStarted(String imageUri, View view) {
// TODO Auto-generated method stub
}
//加载失败
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
// TODO Auto-generated method stub
}
//加载完成
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap bitmap) {
// TODO Auto-generated method stub
//赋值
holder.iv_pic_url.setImageBitmap(bitmap);
}
//取消加载
@Override
public void onLoadingCancelled(String imageUri, View view) {
// TODO Auto-generated method stub
}
});
return convertView;
}
}
static class ViewHolder{
TextView tv_news_title;
ImageView iv_pic_url;
}
}
package com.example.liqianqianzk.dao;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.example.liqianqianzk.bean.Data;
import com.example.liqianqianzk.util.Myopenholper;
/**
* dao包
* @author 李倩
* @ date 2017-8-7
*/
public class UserDao {
Myopenholper holper;
public UserDao(Context context) {
super();
holper=new Myopenholper(context);
// TODO Auto-generated constructor stub
}
// //1、将数据存入数据库(10分)
public void add(List<Data> list){
SQLiteDatabase db = holper.getWritableDatabase();
for (int i = 0; i < list.size(); i++) {
ContentValues values=new ContentValues();
values.put("news_id", list.get(i).getNews_id());
values.put("news_summary", list.get(i).getNews_summary());
values.put("news_title", list.get(i).getNews_title());
values.put("pic_url", list.get(i).getPic_url());
db.insert("user", null, values);
db.close();
}
}
// 2、点击ListView条目删除item,数据库也进行删除(10分)
public void del(String news_title){
SQLiteDatabase db = holper.getWritableDatabase();
db.delete("user", "news_title=?", new String[]{news_title});
db.close();
}
}