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
productosadapter.java
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


0