Android - Problea con actualizar Listview

 
Vista:

Problea con actualizar Listview

Publicado por Carlos (3 intervenciones) el 20/11/2016 23:40:40
Buenas tardes, tengo problemas con mi actualizar mi listview despues de ir ingresando las cantidades en la nota de pedido
detallo el activities que tengo y el adapter, cualquier ayuda para mi es de gran valor ya que he buscado y no he encontrado como soluconarlo.

pedidos.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
public class Pedidos extends Activity implements AdapterView.OnItemSelectedListener {
    ConnectionClass connectionClass;
    ProgressBar pbr2;
    private SQLiteDatabase db;
    private List<Productos> productosList = new ArrayList<Productos>();
    ListView listap;
    private DBHelper helper;
    Spinner spinnerFam;
    private ProductosAdapter productosAdapter;
    private GruposAdapter gruposAdapter;
 
    EditText edt3;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pedidos);
 
        pbr2 = (ProgressBar) findViewById(R.id.progressBar2);
        listap = (ListView) findViewById(R.id.listview2);
        spinnerFam = (Spinner) findViewById(R.id.spinner2);
 
        // edt3 = (EditText) findViewById(R.id.editText3);
 
        connectionClass = new ConnectionClass();
        helper = new DBHelper(this);
        db = helper.getWritableDatabase();
 
        gruposAdapter = new GruposAdapter(this,android.R.layout.simple_spinner_dropdown_item,helper.recuperarGrupos());
        gruposAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 
        spinnerFam.setAdapter(gruposAdapter);
        spinnerFam.setOnItemSelectedListener(this);
 
        productosList = helper.recuperarProductos();
        productosAdapter = new ProductosAdapter(this,productosList);
       // productosAdapter.notifyDataSetChanged();
        listap.setAdapter(productosAdapter);
 
        listap.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Productos productos = productosAdapter.getItem(i);
                final String idprod = productos.getCodigo();
 
                LayoutInflater inflater = getLayoutInflater();
                final View dialoglayout = inflater.inflate(R.layout.dialog,null);
                final EditText etcant = (EditText) dialoglayout.findViewById(R.id.editText4);
                final TextView tvcant = (TextView) dialoglayout.findViewById(R.id.textView15);
 
                tvcant.setText(productos.getDescripcion());
                etcant.setText(String.valueOf(productos.getCantidad()));
                etcant.setSelectAllOnFocus(true);
 
                final int codspinini = spinnerFam.getLastVisiblePosition();
 
 
                AlertDialog.Builder builder = new AlertDialog.Builder(Pedidos.this);
                builder.setView(dialoglayout);
 
                builder.setPositiveButton("Aceptar", new  DialogInterface.OnClickListener(){
 
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Integer cantidad = Integer.valueOf(etcant.getText().toString());
                        helper.actualizarCantProd(idprod,cantidad);
 
                        //limpieza de datos
                        productosList.clear();
                        listap.setAdapter(null);
                        // spinnerFam.setAdapter(null);
 
                      //  spinnerFam.setAdapter(gruposAdapter);
                       // spinnerFam.setOnItemSelectedListener(Pedidos.this);
                        //spinnerFam.setVerticalScrollbarPosition(codspinini);
 
                        productosList = helper.recuperarProductos();
                        productosAdapter = new ProductosAdapter(Pedidos.this,productosList);
                        listap.setAdapter(productosAdapter);
                    }
                });
 
                builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener(){
 
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
 
                    }
                });
 
                builder.show();
                productosAdapter.notifyDataSetChanged();
               // Toast.makeText(Pedidos.this, codspinini, Toast.LENGTH_SHORT).show();
            }
        });
 
    }
 
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
       Grupos grupos = gruposAdapter.getItem(position);
        productosAdapter.getFilter().filter(Long.toString(grupos.getCodGrup()), new Filter.FilterListener() {
            @Override
            public void onFilterComplete(int i) {
            }
        });
 
    }
 
    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {
 
    }
 
}




productosadapter.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
public class ProductosAdapter extends BaseAdapter implements Filterable {
    private LayoutInflater pLayoutInflater;
    private List<Productos> productosList;
    private List<Productos> productosFilterList;
    private ProductosFilter productosFilter;
    private Context context;
 
    public ProductosAdapter(Context context, List data){
        productosList = data;
        productosFilterList = data;
        pLayoutInflater = LayoutInflater.from(context);
        this.context = context;
    }
 
    @Override
    public int getCount() {
        return productosList.size();
    }
 
    @Override
    public Productos getItem(int i) {
        return productosList.get(i);
    }
 
    @Override
    public long getItemId(int i) {
        return i;
    }
 
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View updateViewp;
        final ViewHoler viewHoler;
        if (view == null){
            updateViewp = pLayoutInflater.inflate(R.layout.productodetalle, null);
            viewHoler = new ViewHoler();
 
            viewHoler.cantidad = (TextView) updateViewp.findViewById(R.id.textView14);
            viewHoler.codigo = (TextView) updateViewp.findViewById(R.id.textView11);
            viewHoler.descripcion = (TextView) updateViewp.findViewById(R.id.textView12);
            viewHoler.precio = (TextView) updateViewp.findViewById(R.id.textView13);
 
            updateViewp.setTag(viewHoler);
        } else {
            updateViewp = view;
            viewHoler = (ViewHoler) updateViewp.getTag();
        }
        final Productos item = getItem(i);
            viewHoler.cantidad.setText(String.valueOf(item.getCantidad()));
            viewHoler.codigo.setText(item.getCodigo());
            viewHoler.precio.setText(String.valueOf(item.getPrecioNeto()));
            viewHoler.descripcion.setText(item.getDescripcion());
 
        return updateViewp;
    }
 
    @Override
    public Filter getFilter() {
        if (productosFilter == null){
            productosFilter = new ProductosFilter();
        }
        return productosFilter;
    }
 
    static class ViewHoler {
        TextView cantidad;
        TextView descripcion;
        TextView codigo;
        TextView precio;
    }
 
 
    private class ProductosFilter extends Filter {
 
        @Override
        protected FilterResults performFiltering(CharSequence charSequence) {
            long codGrupId = Long.parseLong(charSequence.toString());
            FilterResults results = new FilterResults();
 
            if (codGrupId > 0) {
                ArrayList<Productos> filterListp = new ArrayList<Productos>();
                for (int i = 0; i < productosFilterList.size(); i ++) {
                    if ((productosFilterList.get(i).getCodgrupo()) == codGrupId){
                        Productos productos = productosFilterList.get(i);
                        filterListp.add(productos);
                    }
                }
                results.count = filterListp.size();
                results.values = filterListp;
            } else {
                results.count = productosFilterList.size();
                results.values = productosFilterList;
            }
 
            return results;
        }
 
        @Override
        protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
            productosList = (ArrayList<Productos>)filterResults.values;
            notifyDataSetChanged();
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder