Android 踩坑 LitePal无法自动加入类似List<List>等数据类型

Android 踩坑 LitePal无法自动加入类似List<List>等数据类型,第1张

我在试图用LitePal存储List<List>这样的数据类型时始终失败,类似的像是包含一个有很多属性的类的List,以及List<Map<String,String>>list, Map<List,float>map都是不进去的。

目前解决的方法也只能在自己的项目里改,尽量用简单的list和map储存数据,但治标不治本,很多时候没办法这么解决,期待郭霖大神能改进一下。

Android中加载list列表数据主要是通过Adapter实现,可用显示列表的控件如下:

Listview

GridView

ExpandListview

显示具体的数据需要通过Adapter实现,Android目前有4种Adapter:

ArrayAdapter

SimpleAdapter

SimpleCursorAdapter

BaseAdapter ( 自定义Adapter)

具体 *** 作步骤 ( 以自定义Adapter为例):

在xml中定义Listview布局

在代码中通过ID找到Listview控件

构建Adapter对象,新建一个类继承自BaseAdapter,重写它的四个方法,具体如下代码

构造好适配器后设置Listview的adapter对象为新建的适配器,界面即可显示数据

在数据变动的地方,只需要调用adapter的notifyDataSetChanged方法即可刷新界面

package com.beryl.gougou

import android.content.Context

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.BaseAdapter

import java.util.List

/**

 * Created by yt on 16/11/14.

 */

public class MyAdapter extends BaseAdapter {

    private List<String> datalist

    private LayoutInflater inflater

    

    public MyAdapter(Context context ,List<String> datalist){

        this.datalist = datalist

        inflater = LayoutInflater.from(context)

    }

    

    @Override

    public int getCount() {

        return datalist.size()

    }

    @Override

    public Object getItem(int position) {

        return datalist.get(position)

    }

    @Override

    public long getItemId(int position) {

        return position

    }

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        //此处参考网上的view缓存机制,示例demo不多说明

        return null

    }

    

   

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/8029213.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存