MainActivity.class
package com.example.kanghuwei.listview_lianxi;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private ListView lv;
private ArrayList<ListBean.DataBean> list =new ArrayList<>();
private MyBase adapter;
private Dao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dao=new Dao(MainActivity.this);
lv=findViewById(R.id.lv);
adapter = new MyBase(list,MainActivity.this);
lv.setAdapter(adapter);
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());
long insert = dao.insert("person", null, values);
if (insert>0){
Toast.makeText(MainActivity.this,"添加成功",0).show();
}
}
Cursor query = dao.query("person", null, null, null, null, null, null);
if (query.moveToFirst()){
do{
String news_id=query.getString(query.getColumnIndex("news_id"));
String news_summary=query.getString(query.getColumnIndex("news_summary"));
String news_title=query.getString(query.getColumnIndex("news_title"));
String pic_url=query.getString(query.getColumnIndex("pic_url"));
}while (query.moveToNext());
}
new MAsyncTask().execute(url);
}
class MAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String json="";
try {
json = NetWorkUtils.getJson(strings[0]);
} catch (Exception e) {
e.printStackTrace();
}
return json;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
ListBean bean=gson.fromJson(s,ListBean.class);
List<ListBean.DataBean> datalist = bean.getData();
list.addAll(datalist);
adapter.notifyDataSetChanged();
}
}
}
适配器
package com.example.kanghuwei.listview_lianxi;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
class MyBase extends BaseAdapter {
private List<ListBean.DataBean>list;
private Context context;
public MyBase(List<ListBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@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=(TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder);
}else{
holder= (ViewHolder) convertView.getTag();
}
holder.textview.setText(list.get(position).toString());
return convertView;
}
class ViewHolder{
TextView textview;
}
}
数据库
package com.example.kanghuwei.listview_lianxi;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
class MySqlite extends SQLiteOpenHelper {
public MySqlite(Context context) {
super(context, "user.db", null, 1);
}
/**
* news_id : 13811
* news_title : 深港澳台千里连线,嘉年华会今夏入川
* news_summary : 6月17—20日,“2016成都深港澳台嘉年华会”(简称嘉年华会)将在成都世纪城国际会展中心举办。其主办方励展华博借力旗
* pic_url : http://f.expoon.com/sub/news/2016/01/21/887844_230x162_0.jpg
*/
@Override
public void onCreate(SQLiteDatabase db) {
//db.execSQL("create table person(news_id integer primary key autoincrement, news_title text,news_title text,news_summary text,pic_url text)");
db.execSQL("create table person(news_id integer primary key autoincrement , news_title text,news_summary text,pic_url text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Dao层
package com.example.kanghuwei.listview_lianxi;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.CancellationSignal;
import java.util.Currency;
class Dao {
private Context context;
private final MySqlite sqlite;
private final SQLiteDatabase db;
//ctrl+alt+f全局
public Dao(Context context) {
this.context = context;
sqlite = new MySqlite(context);
db = sqlite.getWritableDatabase();
}
public long insert(String table, String nullColumnHack, ContentValues values){
return db.insert(table, nullColumnHack, values);
}
public long delete(String table, String whereClause, String[] whereArgs){
return db.delete(table, whereClause, whereArgs);
}
public long update(String table, ContentValues values, String whereClause, String[] whereArgs){
return db.update(table, values, whereClause, whereArgs);
}
public Cursor query(String table, String[] columns,
String selection, String[] selectionArgs, String groupBy,
String having, String orderBy) {
return db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
}
}
工具类
package com.example.kanghuwei.listview_lianxi;
import android.util.Log;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class NetWorkUtils {
/*public static Bitmap getBitmap(String urlBitmap) {
try {
URL url = new URL(urlBitmap);
try {
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} else {
Log.e("khw", "responseCode:" + responseCode);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}*/
private static String tag = "getNetJson";
public static String getJson(String urlString) throws Exception {
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp = "";
StringBuilder stringBuilder = new StringBuilder();
while ((temp = bufferedReader.readLine()) != null) {
stringBuilder.append(temp);
}
//错
return stringBuilder.toString();
} else {
Log.e("khw", "responseCode--json" + responseCode);
}
return "";
}
}