ListView展示

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 "";
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43573190/article/details/84660436
今日推荐