//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});
}
}