无尽的分页listview Android与数据库

时间:2014-09-09 12:05:11

标签: android listview android-listview pagination infinite-scroll

我需要在我的代码中实现无限的分页列表视图,我在网上搜索过,我看到了很多例子,但没有一个是使用数据库,我的应用程序执行以下操作:

它连接到API并使用json检索数据并在列表视图中显示,确定工作正常,但我希望listview具有无限滚动,如facebook。

我不希望任何人为我编写代码,我要求有人指导我,这是实现这一目标的更好方法,我将分享一些代码,以便您理解:

try {
            //Repositorio is my database

            Repositorio mRepositorio = new Repositorio(getActivity());

            List listaDeClientes = mRepositorio.getClientes();

            System.out.println(listaDeClientes);

            TextView total = (TextView) rootView.findViewById(R.id.totalClientes);
            total.setText(getTotalClientes(mRepositorio.getTotalRegistros("clientes")));

            final ArrayAdapter ad = new ClienteViewAdapter(this.getActivity(), R.layout.fragment_cliente_item, listaDeClientes);
            ListView lv = (ListView) rootView.findViewById(R.id.listaClientes);

            lv.setVerticalFadingEdgeEnabled(true);
            lv.setVerticalScrollBarEnabled(true);



            lv.setAdapter(ad);

        } catch (Exception e) {
            e.printStackTrace();
        }

        return rootView;
    }

ClienteViewAdapter:

public class ClienteViewAdapter extends ArrayAdapter<ClienteModel> {

    private final LayoutInflater inflater;

    private final int resourceId;

    public ClienteViewAdapter(Context context, int resource, List<ClienteModel> objects) {
        super(context, resource, objects);
        this.inflater = LayoutInflater.from(context);
        this.resourceId = resource;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {

        ClienteModel mClienteModel = getItem(position);

        view = inflater.inflate(resourceId, parent, false);

        TextView tvId = (TextView) view.findViewById(R.id.clienteId);
        TextView tvNome = (TextView) view.findViewById(R.id.clienteNome);
        TextView tvTipo = (TextView) view.findViewById(R.id.clienteTipo);

        tvId.setText(String.valueOf(mClienteModel.getClientes_id()));
        tvNome.setText(mClienteModel.getNome());
        tvTipo.setText(mClienteModel.getTipo());

        return view;
    }

}

型号:

public class ClienteModel implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer clientes_id;
    private Integer id_rm;
    private Integer credencial_id;
    private String nome;
    private String tipo;
    private String informacao_adicional;
    private String _criado;
    private String _modificado;
    private String _status;

    public Integer getClientes_id() {
        return clientes_id;
    }

    public void setClientes_id(Integer clientes_id) {
        this.clientes_id = clientes_id;
    }

    public Integer getId_rm() {
        return id_rm;
    }

    public void setId_rm(Integer id_rm) {
        this.id_rm = id_rm;
    }

    public Integer getCredencial_id() {
        return credencial_id;
    }

    public void setCredencial_id(Integer credencial_id) {
        this.credencial_id = credencial_id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getInformacao_adicional() {
        return informacao_adicional;
    }

    public void setInformacao_adicional(String informacao_adicional) {
        this.informacao_adicional = informacao_adicional;
    }

    public String get_criado() {
        return _criado;
    }

    public void set_criado(String _criado) {
        this._criado = _criado;
    }

    public String get_modificado() {
        return _modificado;
    }

    public void set_modificado(String _modificado) {
        this._modificado = _modificado;
    }

    public String get_status() {
        return _status;
    }

    public void set_status(String _status) {
        this._status = _status;
    }

    public static String[] getColunas() {
        return Colunas;
    }

    public static void setColunas(String[] colunas) {
        Colunas = colunas;
    }

    public static String[] Colunas = new String[]{
            Coluna.CLIENTES_ID,
            Coluna.ID_RM,
            Coluna.CREDENCIAL_ID,
            Coluna.NOME,
            Coluna.TIPO,
            Coluna.INFORMACAO_ADICIONAL,
            Coluna._CRIADO,
            Coluna._MODIFICADO,
            Coluna._STATUS
    };

0 个答案:

没有答案