数据库+listview(主要用于理清思路)
Main
public class MainActivity extends AppCompatActivity {
NewAdapter adapter;
NewResponse json;
ArrayList<ChannelBean> list;
Dao dao;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = findViewById(R.id.listview);
adapter = new NewAdapter(this);
lv.setAdapter(adapter);
initData();
}
String url = "http://www.xieast.com/api/news/news.php?page=1";
private void initData() {
dao = new Dao(this);
if(!HttpUtil.hasNetwork(this)) {
ArrayList<NewItemBean> list = dao.query();
adapter.setData(list);
return;
}
new AsyncTask<String,String ,ArrayList<NewItemBean>>(){
@Override
protected ArrayList<NewItemBean> doInBackground(String... strings) {
HttpUtil util = new HttpUtil(url);
String work = util.requestUtil();
Gson gson = new Gson();
json = gson.fromJson(work, NewResponse.class);
return json.getData();
}
@Override
protected void onPostExecute(ArrayList<NewItemBean> newItemBeans) {
super.onPostExecute(newItemBeans);
adapter.setData(newItemBeans);
for(int i = 0 ; i< newItemBeans.size();i++){
dao.add(newItemBeans.get(i).getTitle());
}
ArrayList<NewItemBean> query = dao.query();
String title = query.get(0).getTitle();
Toast.makeText(MainActivity.this,title,Toast.LENGTH_LONG).show();
}
}.execute(url);
}
}
dao
public class Dao {
SQLiteDatabase database;
public Dao(Context context){
MHelper mHelper = new MHelper(context);
database = mHelper.getWritableDatabase();
}
public ArrayList<NewItemBean> query(){
Cursor cursor = database.rawQuery("select * from user", null);
ArrayList<NewItemBean> list = new ArrayList<>();
while (cursor.moveToNext()){
String title = cursor.getString(cursor.getColumnIndex("title"));
NewItemBean bean = new NewItemBean();
bean.setTitle(title);
list.add(bean);
}
return list;
}
public void add(String title){
database.execSQL("insert into user(title) values(?)",new Object[]{title});
}
public void update(String title){
database.execSQL("update employ set ?=? where (title=?)",new String[]{title});
}
}
库
public MHelper(Context context) {
super(context, "user.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table user(id integer primary key autoincrement," +
"title text," +
"date text," +
"url text)");
}
封装(请求网络+网络判断)
class HttpUtil {
private String urll;
public HttpUtil(String url) {
this.urll = url;
}
public String requestUtil() {
String msg =null;
try {
URL url= new URL(urll);
try {
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
msg = String2string(urlConnection.getInputStream());
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
return msg;
}
private String String2string(InputStream inputStream) {
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
for (String temp=reader.readLine();temp!=null;temp=reader.readLine()) {
buffer.append(temp);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer.toString();
}
public static boolean hasNetwork(Context context) {
ConnectivityManager systemService =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = systemService.getActiveNetworkInfo();
return info != null && info.isAvailable();
}
}