Buenas,
Es la primera vez que intento hacer una aplicación en android por lo cual no se mucho del tema y seguramente mi duda sea de lo más básico, pero es que no encuentro la forma de hacerlo. La cuestión es que tengo un Listview que se rellena a través de un SimpleAdapter, pero luego necesito poder editar el listview a través de la interfaz y que se me actualice el adaptador. Supongo que sería algo parecido a capturar el evento que se produce cuando edito algún campo del listview y actualizar el adaptador con los datos que hay en pantalla pero no hay manera. El código relacionado a mi listview es el siguiente:
layout que utilizo para personalizar el listview row_list_receta.xml
------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/dmarron"
android:orientation="horizontal" >
<EditText
android:id="@+id/codplaga"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/nomplaga"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/codarti"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/nomarti"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/ps"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/dosis"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/dosis2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="@dimen/text_size" />
</LinearLayout>
------------
Código en la actividad
Variables de la clase
private ListView lineasarticulos;
private ArrayList<HashMap<String, String>> mylistaart;
private SimpleAdapter adaptadorartis;
En el onCreate:
setContentView(R.layout.activity_crearrecetas);
lineasarticulos = (ListView) findViewById(R.id.listView1);
Funciones de inicialización y relleno del listview
private void inicializa_lineas() {
mylistaart = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put("codplaga", "Plaga");
map.put("nomplaga", " ");
map.put("codarti", "Producto");
map.put("nomarti", " ");
map.put("ps", "P.S.");
map.put("dosis", "Dosis");
map.put("dosis", "Dosis");
// mylistaart.add(map); Esto era para la cabecera
adaptadorartis = new SimpleAdapter(this, mylistaart,
R.layout.row_list_receta, new String[] { "codplaga",
"nomplaga", "codarti", "nomarti", "ps", "dosis",
"dosis2" }, new int[] { R.id.codplaga, R.id.nomplaga,
R.id.codarti, R.id.nomarti, R.id.ps, R.id.dosis,
R.id.dosis2 });
lineasarticulos.setAdapter(adaptadorartis);
}
public void anadir_linea(View view) {
//calculo de valores para añadir una linea al listview
Spinner Splaga = (Spinner) findViewById(R.id.spinnerplaga);
Spinner Sarticu = (Spinner) findViewById(R.id.spinnerarticu);
String textplaga = Splaga.getSelectedItem().toString();
String textarticu = Sarticu.getSelectedItem().toString();
String[] datos_plaga = textplaga.split("\\{");
String[] datos_articu = textarticu.split("\\{");
String dosis = "0";
String plazo = "0";
String codigo_articulo = datos_articu[1].split("\\}")[0];
for (int i = 0; i < vg.datart.size(); i++) {
String Idatart = vg.datart.get(i);
String[] datos_datart = Idatart.split("\\{");
String Dart = datos_datart[0];
String Dcultivo = datos_datart[1].split("\\}")[0];
if (Dart.trim().equals(codigo_articulo.trim())) {
if (CULTIVO.trim().equals(Dcultivo.trim())) {
dosis = datos_datart[3].split("\\}")[0];
plazo = datos_datart[4].split("\\}")[0];
}
}
}
// Aqui es donde añade la linea al listview
HashMap<String, String> map = new HashMap<String, String>();
map.put("codplaga", datos_plaga[1].split("\\}")[0]);
map.put("nomplaga", datos_plaga[0]);
map.put("codarti", datos_articu[1].split("\\}")[0]);
map.put("nomarti", datos_articu[0]);
map.put("ps", plazo);
map.put("dosis", dosis);
map.put("dosis2", dosis);
mylistaart.add(map);
adaptadorartis.notifyDataSetChanged();
}
He intentado añadirle eventos al listview pero no salta ninguno, ni cuando le hago click ni nada
lineasarticulos
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
actualiza_linea(position);
}
});
No tengo gitHub >.<
A ver si consigo ponerlo mas o menos claro ...
Layout principal : activity_crearreceta.xml
spoiler<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/dmarron" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="36dp" android:background="@drawable/dmarron" android:orientation="horizontal" > <ImageView android:id="@+id/imageView1" android:layout_width="230dp" android:layout_height="wrap_content" android:contentDescription="@string/membrete" android:src="@drawable/logo12" /> </LinearLayout> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="10.8" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/trazabilidad_" android:textSize="13sp" /> <Spinner android:id="@+id/spinner1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="13sp" tools:listitem="@android:layout/simple_spinner_item" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="10.8" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cultivo_" android:textSize="13sp" /> <EditText android:id="@+id/editText1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="11sp" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/superficie_" android:textSize="13sp" /> <EditText android:id="@+id/EditText01" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:inputType="" android:textSize="13sp" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="10.8" > <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/plaga_" android:textSize="13sp" /> <Spinner android:id="@+id/spinnerplaga" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="13sp" tools:listitem="@android:layout/simple_spinner_item" /> <TextView android:id="@+id/textView7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.9" android:text="@string/f_inicio_" android:textSize="13sp" /> <EditText android:id="@+id/editText2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.2" android:inputType="date" android:textSize="11sp" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="10.8" > <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/mat_activa_" android:textSize="13sp" /> <Spinner android:id="@+id/spinnermateria" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="13sp" tools:listitem="@android:layout/simple_spinner_item" /> </TableRow> <TableRow android:id="@+id/tableRow5" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="46" > </TableRow> <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_gravity="bottom" android:layout_weight="10.8" > <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/producto_" android:textSize="13sp" /> <Spinner android:id="@+id/spinnerarticu" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="13sp" tools:listitem="@android:layout/simple_spinner_item" /> </TableRow> </TableLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="guardar" android:text="@string/guardar" android:textSize="13sp" /> <Button android:id="@+id/anadir" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/a_adir" android:textSize="13sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/codplagax" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Plaga" android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/nomplagax" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/codartix" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Produc" android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/nomartix" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/psx" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="P.S." android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/dosisx" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Dosis" android:textSize="@dimen/text_size" android:textStyle="bold" /> <TextView android:id="@+id/dosisx2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Dosis" android:textSize="@dimen/text_size" android:textStyle="bold" /> </LinearLayout> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:textSize="13sp" > </ListView> </LinearLayout>
layout para el listview row_list_receta.xml
spoiler<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/dmarron" android:orientation="horizontal" > <EditText android:id="@+id/codplaga" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/nomplaga" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/codarti" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/nomarti" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/ps" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/dosis" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="@dimen/text_size" /> <EditText android:id="@+id/dosis2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="@dimen/text_size" /> </LinearLayout>
3.Actividad CrearRecetas.java
spoilerpackage com.arraylevante.gestioncampo; import java.lang.ref.WeakReference; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.Inflater; import com.arraylevante.gestioncampo.beans.RecetaBean; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.SimpleAdapter.ViewBinder; import android.widget.Spinner; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; public class CrearRecetas extends Activity { static class RecetasHandler extends Handler { WeakReference<Activity> wr; public RecetasHandler(Activity a) { wr = new WeakReference<Activity>(a); }; @Override public void handleMessage(Message msg) { final CrearRecetas ap = (CrearRecetas) wr.get(); ap.progreso.dismiss(); if (msg.what == -1) { String error = (String) msg.obj; ap.mostrar_mensaje("Error", error); } else if (msg.what == 5) { String numParte = (String) msg.obj; ap.mostrar_mensaje("Parte actualizado", "El parte con número " + numParte + " se ha modificado correctamente."); // ap.reset_campos(); // ap.se_puede_modificar(); } else { String numParte = (String) msg.obj; ap.mostrar_mensaje("Receta Guardada", "La receta se ha guardado correctamente y se le ha asignado el número " + numParte + "."); // ap.reset_campos(); // ap.se_puede_modificar(); ap.num_receta = numParte; } }; }; private static VariablesGlobales vg; private String Lafinca; private String CULTIVO = "0"; private String PLAGA = "0"; private String ARTICULO = "0"; private String TRAZABILIDAD = "0"; private Activity that = this; private ProgressDialog progreso; private Spinner STrazabilidad, SMateria; private ListView lineasarticulos; private ArrayList<HashMap<String, String>> mylistaart; private SimpleAdapter adaptadorartis; private ClaseReceta receta; private Button b1; private EditText et2, ets; public String num_receta; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_crearrecetas); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); vg = (VariablesGlobales) getApplicationContext(); SMateria = (Spinner) findViewById(R.id.spinnermateria); STrazabilidad = (Spinner) findViewById(R.id.spinner1); b1 = (Button) findViewById(R.id.button1); et2 = (EditText) findViewById(R.id.editText2); ets = (EditText) findViewById(R.id.EditText01); lineasarticulos = (ListView) findViewById(R.id.listView1); lineasarticulos.setItemsCanFocus(true); registerForContextMenu(lineasarticulos); receta = new ClaseReceta(vg); Lafinca = getIntent().getExtras().getString("FINCA"); loadSpinner(); loadSpinnerplagas(); loadSpinnermat(); loadSpinnerarti(); inicializa_lineas(); // evento edita lineas lineasarticulos .setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final int xlinea = position; EditText v = (EditText) parent .findViewById(R.id.dosis2); v.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // TODO Auto-generated method stub actualiza_linea(xlinea); return false; } }); } }); // evento boton añadir lineas final Button botonanadir = (Button) findViewById(R.id.anadir); botonanadir.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub anadir_linea(v); } }); // evento de seleccion de item en spiner de trazabilidades Spinner spinnertraza = (Spinner) findViewById(R.id.spinner1); spinnertraza .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { rellenatraza(i); } @Override public void onNothingSelected(AdapterView<?> adapterView) { return; } }); // evento de seleccion de item en spiner de plagas Spinner spinnerplaga = (Spinner) findViewById(R.id.spinnerplaga); spinnerplaga .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { rellenamateria(i); } @Override public void onNothingSelected(AdapterView<?> adapterView) { return; } }); // evento de seleccion de item en spiner de materias Spinner spinnermateria = (Spinner) findViewById(R.id.spinnermateria); spinnermateria .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { String text = SMateria.getSelectedItem().toString(); rellenaarticu(i, text); } @Override public void onNothingSelected(AdapterView<?> adapterView) { return; } }); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; menu.setHeaderTitle("Opciones"); inflater.inflate(R.menu.menu_ctx_lineas, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item .getMenuInfo(); switch (item.getItemId()) { case R.id.Opceliminar: mylistaart.remove(info.position); adaptadorartis.notifyDataSetChanged(); return true; default: return super.onContextItemSelected(item); } } // actualizar linea articulos private void actualiza_linea(int posicion) { HashMap<String, String> map = new HashMap<String, String>(); map = mylistaart.get(posicion); mylistaart.set(posicion, map); adaptadorartis.notifyDataSetChanged(); } // datos de trazabilidad elegida private void rellenatraza(int posicion) { EditText tbcultivo = (EditText) findViewById(R.id.editText1); EditText tbsuperficie = (EditText) findViewById(R.id.EditText01); String[] auxtra = STrazabilidad.getSelectedItem().toString() .split("\\{"); TRAZABILIDAD = auxtra[1].split("\\}")[0]; for (int i = 0; i < vg.trazabilidad.size(); i++) { String codigotra = vg.trazabilidad.get(i).split("\\{")[1] .split("\\}")[0]; if (codigotra.trim().equals(TRAZABILIDAD.trim())) { posicion = i; break; } } String[] aux = vg.trazabilidad.get(posicion).split("\\{"); tbcultivo.setText(aux[2].split("\\}")[0]); CULTIVO = aux[2].split("\\}")[0]; tbsuperficie.setText(aux[6].split("\\}")[0]); for (int i = 0; i < vg.cultivos.size(); i++) { String[] aux2 = vg.cultivos.get(i).split("\\{"); String codigo_cultivo = aux2[1].split("\\}")[0]; if (codigo_cultivo.trim().equals(aux[2].split("\\}")[0].trim())) { tbcultivo.setText(aux2[0]); break; } } } // rellenar spinner articulos segun materia elegida private void rellenaarticu(int posicion, String valor) { String[] aux = valor.split("\\{"); String materia = aux[1].split("\\}")[0]; List<CharSequence> listaarticu = new ArrayList<CharSequence>(); for (int i = 0; i < vg.artmat.size(); i++) { String[] aux2 = vg.artmat.get(i).split("\\{"); String codigo_materia = aux2[1].split("\\}")[0]; if (codigo_materia.trim().equals(materia.trim())) { String codigo_articulo = aux2[0]; for (int j = 0; j < vg.articulos.size(); j++) { String[] aux3 = vg.articulos.get(j).split("\\{"); String xarticulo = aux3[1].split("\\}")[0]; if (xarticulo.trim().equals(codigo_articulo.trim())) { listaarticu.add(vg.articulos.get(j)); } } } } Spinner spinner = (Spinner) findViewById(R.id.spinnerarticu); ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, listaarticu); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } public void anadir_linea(View view) { Spinner Splaga = (Spinner) findViewById(R.id.spinnerplaga); Spinner Sarticu = (Spinner) findViewById(R.id.spinnerarticu); String textplaga = Splaga.getSelectedItem().toString(); String textarticu = Sarticu.getSelectedItem().toString(); String[] datos_plaga = textplaga.split("\\{"); String[] datos_articu = textarticu.split("\\{"); String dosis = "0"; String plazo = "0"; String codigo_articulo = datos_articu[1].split("\\}")[0]; for (int i = 0; i < vg.datart.size(); i++) { String Idatart = vg.datart.get(i); String[] datos_datart = Idatart.split("\\{"); String Dart = datos_datart[0]; String Dcultivo = datos_datart[1].split("\\}")[0]; if (Dart.trim().equals(codigo_articulo.trim())) { if (CULTIVO.trim().equals(Dcultivo.trim())) { dosis = datos_datart[3].split("\\}")[0]; plazo = datos_datart[4].split("\\}")[0]; } } } HashMap<String, String> map = new HashMap<String, String>(); map.put("codplaga", datos_plaga[1].split("\\}")[0]); map.put("nomplaga", datos_plaga[0]); map.put("codarti", datos_articu[1].split("\\}")[0]); map.put("nomarti", datos_articu[0]); map.put("ps", plazo); map.put("dosis", dosis); map.put("dosis2", dosis); mylistaart.add(map); adaptadorartis.notifyDataSetChanged(); } // rellenar spinner materias segun plaga elegida private void rellenamateria(int posicion) { String[] aux = vg.plagas.get(posicion).split("\\{"); String plaga = aux[1].split("\\}")[0]; PLAGA = aux[1].split("\\}")[0]; List<CharSequence> listamaterias = new ArrayList<CharSequence>(); for (int i = 0; i < vg.plamat.size(); i++) { String[] aux2 = vg.plamat.get(i).split("\\{"); String codigo_plaga = aux2[1].split("\\}")[0]; if (codigo_plaga.trim().equals(plaga.trim())) { String codigo_materia = aux2[0]; for (int j = 0; j < vg.materias.size(); j++) { String[] aux3 = vg.materias.get(j).split("\\{"); String xmateria = aux3[1].split("\\}")[0]; if (xmateria.trim().equals(codigo_materia.trim())) { listamaterias.add(vg.materias.get(j)); } } } } Spinner spinner = (Spinner) findViewById(R.id.spinnermateria); ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, listamaterias); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } // Datos trazabilidades private void loadSpinner() { Spinner spinner = (Spinner) findViewById(R.id.spinner1); List<CharSequence> trazas = new ArrayList<CharSequence>(); for (int i = 0; i < vg.trazabilidad.size(); i++) { String traza = vg.trazabilidad.get(i).split("\\{")[1].split("\\}")[0]; if (traza.trim().substring(1, 3).trim().equals(Lafinca.trim())) { String[] aux = vg.trazabilidad.get(i).split("\\{"); String cadena = aux[0] + "{ " + aux[1].split("\\}")[0] + "}"; trazas.add(cadena); } } ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, trazas); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } // Datos de plagas private void loadSpinnerplagas() { Spinner spinner = (Spinner) findViewById(R.id.spinnerplaga); ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, vg.getPlagas()); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } // Datos Todas las materias private void loadSpinnermat() { Spinner spinner = (Spinner) findViewById(R.id.spinnermateria); ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, vg.getMaterias()); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } // Datos todos los articulos private void loadSpinnerarti() { Spinner spinner = (Spinner) findViewById(R.id.spinnerarticu); ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>( this, android.R.layout.simple_spinner_item, vg.getArticu()); adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinner.setAdapter(adapter); } private void inicializa_lineas() { mylistaart = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map = new HashMap<String, String>(); map.put("codplaga", "Plaga"); map.put("nomplaga", " "); map.put("codarti", "Producto"); map.put("nomarti", " "); map.put("ps", "P.S."); map.put("dosis", "Dosis"); map.put("dosis", "Dosis"); // mylistaart.add(map); adaptadorartis = new SimpleAdapter(this, mylistaart, R.layout.row_list_receta, new String[] { "codplaga", "nomplaga", "codarti", "nomarti", "ps", "dosis", "dosis2" }, new int[] { R.id.codplaga, R.id.nomplaga, R.id.codarti, R.id.nomarti, R.id.ps, R.id.dosis, R.id.dosis2 }); lineasarticulos.setAdapter(adaptadorartis); } // Guardar receta public void guardar(View v) { Calendar cal = new GregorianCalendar(); Date date = cal.getTime(); SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); String formatteDate = df.format(date); receta.poner_fecha(formatteDate); receta.poner_TRAZABILIDAD(TRAZABILIDAD.trim()); receta.poner_fini(et2.getText().toString()); receta.poner_superficie(ets.getText().toString()); for (int i = 0; i < adaptadorartis.getCount(); i++) { Map<String, String> item = (Map<String, String>) adaptadorartis .getItem(i); String codPlaga = item.get("codplaga"); String codArti = item.get("codarti"); String PS = item.get("ps"); String Dosis = item.get("dosis"); String lineareceta = codPlaga.trim() + "{" + codArti.trim() + "}{" + PS.trim() + "}{" + Dosis.trim() + "}"; receta.anadir_linea(lineareceta); } AlertDialog alertDialog = new AlertDialog.Builder(that).create(); alertDialog.setCancelable(false); alertDialog.setTitle("Guardar Receta"); alertDialog.setMessage("¿Guardar Receta?"); alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "SI", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { progreso = ProgressDialog.show(that, "", "Guardando...", true); ThreadGuardarReceta tep = new ThreadGuardarReceta( new RecetasHandler(that), receta, that, vg); tep.start(); } }); alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); alertDialog.show(); } public void mostrar_mensaje(String titulo, String mensaje) { AlertDialog alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setCancelable(false); alertDialog.setTitle(titulo); alertDialog.setMessage(mensaje); alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); alertDialog.show(); }