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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想问如何使用ListView展示数据库中的图片吗?那么,您需要首先从数据库中获取图片的数据流,并将其转换为Bitmap对象,然后将这些Bitmap对象添加到ListView的Adapter中,使其可以在ListView展示。您可以使用以下代码作为参考: 1. 从数据库中获取图片数据流并转换为Bitmap对象: ``` byte[] imageData = //从数据库中获取图片的数据流 Bitmap bmp = BitmapFactory.decodeByteArray(imageData, 0, imageData.length); ``` 2. 创建一个包含Bitmap对象的集合,并将其作为数据源添加到ListView的Adapter中: ``` List<Bitmap> imageList = new ArrayList<>(); imageList.add(bmp); ListView listView = findViewById(R.id.list_view); ImageAdapter adapter = new ImageAdapter(this, imageList); listView.setAdapter(adapter); ``` 3. 创建一个自定义的Adapter并在getView()方法中设置ImageView的图片: ``` public class ImageAdapter extends BaseAdapter { private Context mContext; private List<Bitmap> mImageList; public ImageAdapter(Context context, List<Bitmap> imageList) { mContext = context; mImageList = imageList; } @Override public int getCount() { return mImageList.size(); } @Override public Object getItem(int position) { return mImageList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); imageView.setLayoutParams(new ListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,500)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } else { imageView = (ImageView) convertView; } imageView.setImageBitmap(mImageList.get(position)); return imageView; } } ``` 以上就是将数据库中的图片展示ListView中的基本过程,您可以根据实际需求进行修改和优化。希望能够帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值