使用sqlite android填充listview

时间:2015-12-24 21:36:10

标签: android sqlite listview

晚上好朋友,我很难在列表视图中填写SQlite工作表中记录的数据,但是只提供最后一项,当我加载具有相同网络服务结果时的相同视图所有项目的数据显示正确

基础适配器:

public class Ad_Categoria_Produto extends BaseAdapter {
    private Activity activity;
    private LayoutInflater inflater;
    private List<Ac_Df_Produto_Categoria> categoria_produtoList;
    private String[] bgColors;
    private int lastPosition = -1;

    public Ad_Categoria_Produto(Activity activity, List<Ac_Df_Produto_Categoria>     movieList) {
        this.activity = activity;
        this.categoria_produtoList = movieList;
    }

    @Override
    public int getCount() {
        return categoria_produtoList.size();
    } 

    @Override
    public Object getItem(int location) {
        return categoria_produtoList.get(location);
     }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (inflater == null)
            inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null)
            convertView = inflater.inflate(R.layout.la_categoria_produtorow, null);
        TextView CategoriaNome = (TextView) convertView.findViewById(R.id.textCategoriaNome);

        CategoriaNome.setText(categoria_produtoList.get(position).getDescricaoInternet());

        Animation animation = AnimationUtils.loadAnimation(activity.getApplicationContext(), (position > lastPosition) ? R.anim.rotate_nav_drawer_image : R.anim.up_from_bottom);
        convertView.startAnimation(animation);
        lastPosition = position;

        return convertView;
    }

表示数据库中表的类:

public class Ac_Df_Produto_Categoria {
    private int id;
    private int PCT_ID;
    private String descricao_internet;
    private String possui_tamanho;

    public Ac_Df_Produto_Categoria(){
        //generica
    }

    public Ac_Df_Produto_Categoria(int id, int PCT_ID, String descricao_internet,     String possui_tamanho){
        this.id = id;
        this.PCT_ID = PCT_ID;
        this.descricao_internet = descricao_internet;
        this.possui_tamanho = possui_tamanho;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getPCT_ID() {
        return PCT_ID;
    }

    public void setPCT_ID(int PCT_ID) {
        this.PCT_ID = PCT_ID;
    }

    public String getDescricaoInternet() {
        return descricao_internet;
    }

    public void setDescricaoInternet(String descricao) {
        this.descricao_internet = descricao;
    }

    public String getPossui_tamanho() {
        return possui_tamanho;
    }

    public void setPossui_tamanho(String possui_tamanho) {
        this.possui_tamanho = possui_tamanho;
    }

SQLiteOpenHelper:

public class Ac_Bs_Produto_Categoria extends SQLiteOpenHelper {

    public SwipeRefreshLayout swipeRefreshLayout;
    private ListView listView;
    private Ad_Categoria_Produto adapter;
    private List<Ac_Df_Produto_Categoria> categoria_produtoList;

    public static final int VERSAO_DATABASE          = 1;
    public static final String NOME_DATABASE          = "BD_PRODUTO_CATEGORIA";
    public static final String NOME_TABELA_TERMOS_USO =    "produtos_categorias_21";

    public Ac_Bs_Produto_Categoria(Context context) {
        super(context, NOME_DATABASE, null, VERSAO_DATABASE);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
         String Create_Tabela_Termos_Uso = "CREATE TABLE " + NOME_TABELA_TERMOS_USO +    "("
                                    + "_id INTEGER PRIMARY KEY,"
                                    + "PCT_Id TEXT" + ","
                                    + "DescricaoInternet TEXT" + ","
                                    + "Possui_tamanho TEXT" + ")";

        db.execSQL(Create_Tabela_Termos_Uso);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String Drop_Tabela_Termos_Uso = "DROP TABLE IF EXISTS " +  NOME_TABELA_TERMOS_USO;
        db.execSQL(Drop_Tabela_Termos_Uso);

        onCreate(db);
    }

    public void InserirCategoria_Produto(Ac_Df_Produto_Categoria    ac_df_produtoCategoria){
        ContentValues is_c = new ContentValues();
        is_c.put("_id", ac_df_produtoCategoria.getId());
        is_c.put("PCT_ID", ac_df_produtoCategoria.getPCT_ID());
        is_c.put("DescricaoInternet",    ac_df_produtoCategoria.getDescricaoInternet());
        is_c.put("Possui_tamanho", ac_df_produtoCategoria.getPossui_tamanho());

        SQLiteDatabase db = this.getWritableDatabase();

        db.insert(NOME_TABELA_TERMOS_USO, null, is_c);
        db.close();
    }

    public boolean DeletarCategoria_Produto() {
        SQLiteDatabase db = getWritableDatabase();
        if (db.delete(NOME_TABELA_TERMOS_USO, "_id <>" + 0, null) > 0)
            return true;
        else
            return false;
    }


    public Ac_Df_Produto_Categoria buscarCategoria_ProdutoTodos() {

        Ac_Df_Produto_Categoria Cat_prod = new Ac_Df_Produto_Categoria();

        String query = "Select * FROM " + NOME_TABELA_TERMOS_USO;
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query, null);

        if (cursor.moveToFirst()){
            do {
                Cat_prod.setId(Integer.parseInt(cursor.getString(0)));
                Cat_prod.setPCT_ID(Integer.parseInt(cursor.getString(1)));
                Cat_prod.setDescricaoInternet(cursor.getString(2));
                Cat_prod.setPossui_tamanho(cursor.getString(3));

            } while(cursor.moveToNext());
        }
        db.close();
        return Cat_prod;
    }

}

最后活动(片段):

public class Fr_Categoria_Produto extends Fragment implements        SwipeRefreshLayout.OnRefreshListener {
    public SwipeRefreshLayout swipeRefreshLayout;
    private ListView listView;
    private Ad_Categoria_Produto adapter;
    private List<Ac_Df_Produto_Categoria> categoria_produtoList;
    String nCategoria = null;
    String nomeCategoria = null;
    int nPosition = 0;
    String vPossuiTamanho = null;
    View rootview;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,     Bundle savedInstanceState) {
        rootview = inflater.inflate(R.layout.fr_categoria_produto, container, false);
        listView = (ListView) rootview.findViewById(R.id.listView);
        swipeRefreshLayout = (SwipeRefreshLayout)  rootview.findViewById(R.id.swipe_refresh_layout);
        categoria_produtoList = new ArrayList<>();
        adapter = new Ad_Categoria_Produto(getActivity(), categoria_produtoList);
        listView.setAdapter(adapter);
        swipeRefreshLayout.setOnRefreshListener(this);

        swipeRefreshLayout.post(new Runnable() {

            @Override
            public void run() {
                Ac_Bs_Produto_Categoria con = new  Ac_Bs_Produto_Categoria(getContext());
                Ac_Df_Produto_Categoria config = con.buscarCategoria_ProdutoTodos();

                if (config != null) {
                    if (config.getDescricaoInternet() != null) {
                        categoria_produtoList.add(0, config);
                        adapter.notifyDataSetChanged();
                        swipeRefreshLayout.setRefreshing(false);
                    }
                 }
             }
        }
    );
    return rootview;
}

}

0 个答案:

没有答案