工具栏
public class Method {
public static String getRequest(String parh){
String result="";
try {
URL url=new URL(parh);
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();
result = stream(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static 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();
}
}
数据库
public class Sqlite extends SQLiteOpenHelper {
public Sqlite(@Nullable Context context) {
super(context, "New.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table news (id integer primary key autoincrement," +
"title text," +
"date text," +
"category text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Dao层
public class NewDao {
private Sqlite sqlite;
private SQLiteDatabase database;
public NewDao(Context context){
sqlite=new Sqlite(context);
database=sqlite.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(){
database.delete("news",null,null);
}
}
MainActivity中
public class MainActivity extends AppCompatActivity {
private ListView listView;
private NewDao dao;
private MyBase myBase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源ID
listView = findViewById(R.id.listview);
dao=new NewDao(this);
myBase=new MyBase(this);
listView.setAdapter(myBase);
getInfo();
}
private String path="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
public void getInfo(){
@SuppressLint("StaticFieldLeak") AsyncTask<String,Void,List<News>> asyncTask=new AsyncTask<String, Void, List<News>>() {
@Override
protected List<News> doInBackground(String... strings) {
String result = Method.getRequest(path);
Gson gson=new Gson();
NewsBean bean = gson.fromJson(result, NewsBean.class);
List<NewsBean.Result.Data> data = bean.getResult().getData();
dao.delete();
for (int i=0;i<data.size();i++){
String title = data.get(i).getTitle();
String date = data.get(i).getDate();
String category = data.get(i).getCategory();
dao.add(title,date,category);
}
List<News> select = dao.select();
return select;
}
@Override
protected void onPostExecute(List<News> news) {
super.onPostExecute(news);
myBase.setList(news);
}
}.execute(path);
}
}
适配器
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;
}
}