ListviewHandler添加数据库

//BeanUser
package bw.com.week1;

import java.util.List;

import javax.xml.transform.Result;

public class NewsBean {
    public Result result;

public Result getResult() {
    return result;
}

public void setResult(Result result) {
    this.result = result;
}

class Result{
    public List<Data> data;

   public List<Data> getData() {
       return data;
   }

   public void setData(List<Data> data) {
       this.data = data;
   }

   class Data{
      public  String title;
      public String date;
      public String category;


       public String getTitle() {
           return title;
       }

       public void setTitle(String title) {
           this.title = title;
       }

       public String getDate() {
           return date;
       }

       public void setDate(String date) {
           this.date = date;
       }

       public String getCategory() {
           return category;
       }

       public void setCategory(String category) {
           this.category = category;
       }
   }
}

}

Main
package bw.com.week1;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import com.google.gson.Gson;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private ListView listView;
private final int UPDATE_UI=1;
private NewDao dao;
private MyBase myBase;
private Handler handler= new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what){
            case UPDATE_UI:
                List<News> list= (List<News>) msg.obj;
                myBase.setList(list);
        }

    }
};
private List<News> select1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = findViewById(R.id.listview);
    dao=new NewDao(this);
    myBase=new MyBase(this);
    listView.setAdapter(myBase);
    new Thread(
            new Runnable() {
                @Override
                public void run() {
                    getInfo();
                }
            }
    ).start();
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent=new Intent(MainActivity.this,LoginActivity.class);
            startActivity(intent);

        }
    });
    listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
         new AlertDialog.Builder(MainActivity.this)
                 .setTitle("删除")
                 .setIcon(R.drawable.ic_launcher_background)
                 .setMessage("确定要删除吗")
                 .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         dao.delete(select1.get(position).getTitle());
                         select1.remove(position);
                         myBase.notifyDataSetChanged();
                     }
                 })
                 .show();
            return true;
        }
    });


}
private String path="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
public void getInfo(){
    //获取地址
    try {
        URL url=new URL(path);
        //打开连接
        HttpURLConnection connection= (HttpURLConnection) url.openConnection();
        //设置方法,超时
        connection.setRequestMethod("GET");
        connection.setConnectTimeout(5000);
        connection.setReadTimeout(5000);
        int responseCode = connection.getResponseCode();
        if(responseCode==200){
            InputStream inputStream = connection.getInputStream();
            String stream = stream(inputStream);
            Gson gson=new Gson();
            NewsBean newsBean = gson.fromJson(stream, NewsBean.class);
            List<NewsBean.Result.Data> data = newsBean.getResult().getData();
			
            List<News> select = dao.select();
            if(select.size()==0){
                for (int i=0;i<data.size();i++){
                    String title = data.get(i).getTitle();
                    String data1 = data.get(i).getDate();
                    String category = data.get(i).getCategory();
                    dao.add(title,data1,category);

                }
            }
            select1 = dao.select();
			
           Message message = handler.obtainMessage(UPDATE_UI, select1);
            handler.sendMessage(message);


        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
//字节转换为字符
public  String stream(InputStream is) throws IOException {
    StringBuilder builder=new StringBuilder();
    InputStreamReader isr=new InputStreamReader(is);
    BufferedReader br=new BufferedReader(isr);
    for (String tem=br.readLine();tem!=null;tem=br.readLine()) {
        builder.append(tem);
    }
    return builder.toString();
}

}
//适配器
package bw.com.week1;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MyBase extends BaseAdapter {
    private Context context;
    private List<News> list;

public void setList(List<News> list) {
    this.list = list;
    notifyDataSetChanged();
}

public MyBase(Context context) {
    this.context = context;
    list=new ArrayList<>();
}

@Override
public int getCount() {
    return list.size();
}

@Override
public Object getItem(int position) {
    return list.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if(convertView==null){
        convertView=View.inflate(context,R.layout.item,null);
        holder=new ViewHolder();
        holder.textView_title=convertView.findViewById(R.id.textView_title);
        holder.textView_date=convertView.findViewById(R.id.textView_data);
        holder.textView_category=convertView.findViewById(R.id.textView_category);
        convertView.setTag(holder);
    }else{
        holder= (ViewHolder) convertView.getTag();
    }
    holder.textView_title.setText(list.get(position).getTitle());
    holder.textView_date.setText(list.get(position).getDate());
    holder.textView_category.setText(list.get(position).getCategory());
    return convertView;
}
class ViewHolder{
    TextView textView_title,textView_date,textView_category;
}

}
//Dao
package bw.com.week1;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

public class NewDao {
    private SqliteHelper helper;
    private SQLiteDatabase database;
    public  NewDao(Context context){
        helper=new SqliteHelper(context);
        database=helper.getReadableDatabase();
    }
    public void add(String title,String date,String category){
        ContentValues values=new ContentValues();
        values.put("title",title);
        values.put("date",date);
        values.put("category",category);
        database.insert("news",null,values);
    }
    public List<News> select(){
        List<News> list=new ArrayList<News>();
        Cursor query = database.query("news", null, null, null, null, null, null);
        while (query.moveToNext()){
            String title = query.getString(query.getColumnIndex("title"));
            String date = query.getString(query.getColumnIndex("date"));
            String category = query.getString(query.getColumnIndex("category"));
            News news=new News(title,date,category);
            list.add(news);

    }
    return list;

}
public void delete(String title){
    database.delete("news","title=?",new String[]{title});
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值