Foros del Web » Programando para Internet » Android »

Como cambiar de un layout a otro

Estas en el tema de Como cambiar de un layout a otro en el foro de Android en Foros del Web. Saludos, tengo un proyecto android de ejemplo que lo consegui y lo estoy siguiendo para otro proyecto con algunos layout, bueno el caso es que ...
  #1 (permalink)  
Antiguo 28/02/2013, 15:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Como cambiar de un layout a otro

Saludos, tengo un proyecto android de ejemplo que lo consegui y lo estoy siguiendo para otro proyecto con algunos layout, bueno el caso es que este proyecto(lo baje del web)tiene varios layout y en uno de ellos se ingresa datos y tiene un boton el cual manda a grabar en la base y cuando termina ese proceso se visualiza otro layout digamos el layout cuarto...pero lo que yo quiero que en lugar le visualizarme el layout cuarto me visualize el layout quinto...ya he revizado el codigo y no se donde deberia cambiarlo, les pongo el codigo en el cual se hace los procesos de guardado a la base, supongo que en alguna parte de este codigo debo cabiarlo verdad....espero su ayuda amigos...

Código:
package com.example;


public class EditEmpleadosActivity extends Activity {


	String cedula;
	String hora;
String cadenaObtenida;
	
	private ProgressDialog pDialog;


	JSONParser jsonParser = new JSONParser();

	private static final String url_detalles_empleado = "http://www.miweb.com/android/datosempleado.php";

	private static final String url_actualizar_empleado = "http://www.miweb.com/android/actualizarempleado.php";
	
	private static final String url_borrar_empleado = "http://www.miweb.com/android/borrarempleado.php";

	// JSON Node names
	private static final String TAG_SUCCESS = "success";

	private static final String TAG_FECHA = "fecha";
	private static final String TAG_HORA = "hora";
	private static final String TAG_CEDULA1 = "cedu";
	private static final String TAG_MAIL = "mail";
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.edit_empleado);
Bundle recogerDatos=getIntent().getExtras();
cadenaObtenida=recogerDatos.getString("resultado");
		// save button
		btnSave = (Button) findViewById(R.id.btnSave);
		btnDelete = (Button) findViewById(R.id.btnDelete);

		// getting Empleado details from intent
		Intent i = getIntent();
		
		// getting Empleado id (pid) from intent
		cedula = i.getStringExtra(TAG_CEDULA);
		//hora = i.getStringExtra(TAG_CEDULA);
		// Getting complete Empleado details in background thread
		new GetEmpleadoDetails().execute();

		// save button click event
		btnSave.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// starting background task to update Empleado
				new SaveEmpleadoDetails().execute();
			}
		});

		// Delete button click event
		btnDelete.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// deleting Empleado in background thread
				new DeleteEmpleado().execute();
			}
		});

	}

	/**
	 * Background Async Task to Get complete Empleado details
	 * */
	class GetEmpleadoDetails extends AsyncTask<String, String, String> {

		/**
		 * Before starting background thread Show Progress Dialog
		 * */
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(EditEmpleadosActivity.this);
			pDialog.setMessage("Espere por favor...");
			pDialog.setIndeterminate(false);
			pDialog.setCancelable(true);
			pDialog.show();
		}

		/**
		 * Getting Empleado details in background thread
		 * */
		protected String doInBackground(String... params) {

			// updating UI from Background Thread
			runOnUiThread(new Runnable() {
				public void run() {
					// Check for success tag
					int success;
					try {
						// Building Parameters
						List<NameValuePair> params = new ArrayList<NameValuePair>();
						params.add(new BasicNameValuePair("cedula", cedula));

						// getting Empleado details by making HTTP request
						// Note that Empleado details url will use GET request
						JSONObject json = jsonParser.makeHttpRequest(
								url_detalles_empleado, "GET", params);

						// check your log for json response
						Log.d("Single Empleado Details", json.toString());
						
						// json success tag
						success = json.getInt(TAG_SUCCESS);
						if (success == 1) {
							// successfully received Empleado details
							JSONArray EmpleadoObj = json
									.getJSONArray(TAG_EMPLEADOS); // JSON Array
							
							// get first Empleado object from JSON Array
							JSONObject Empleado = EmpleadoObj.getJSONObject(0);

							// Empleado with this pid found
							// Edit Text
							lblcedula = (TextView) findViewById(R.id.lblcedula);
							//lblfecha = (TextView) findViewById(R.id.lblfecha);
							txtNombre = (EditText) findViewById(R.id.inputNombre);
							txtApellido = (EditText) findViewById(R.id.inputApellido);
							txtSueldo = (EditText) findViewById(R.id.inputSueldo);
							lblfecha = (TextView) findViewById(R.id.lblfecha);
							lblmail = (EditText) findViewById(R.id.mail);
							// display Empleado data in EditText
							lblcedula.setText(Empleado.getString(TAG_FECHA));
							//txtNombre.setText(Empleado.getString(TAG_NOMBRE));
							txtApellido.setText(Empleado.getString(TAG_APELLIDO));
							//txtSueldo.setText(Empleado.getString(TAG_SUELDO));
							//lblfecha.setText(Empleado.getString(TAG_APELLIDO));
							lblfecha.setText("  Hora: "+cedula+"       Fecha: "+Empleado.getString(TAG_FECHA));

						}else{
							// Empleado with pid not found
						}
					} catch (JSONException e) {
						e.printStackTrace();
					}
				}
			});

			return null;
		}


		/**
		 * After completing background task Dismiss the progress dialog
		 * **/
		protected void onPostExecute(String file_url) {
			// dismiss the dialog once got all details
			pDialog.dismiss();
		}
	}

	/**
	 * Background Async Task to  Save Empleado Details
	 * */
	class SaveEmpleadoDetails extends AsyncTask<String, String, String> {

		/**
		 * Before starting background thread Show Progress Dialog
		 * */
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(EditEmpleadosActivity.this);
			pDialog.setMessage("Registrando su Cita Médica...");
			pDialog.setIndeterminate(false);
			pDialog.setCancelable(true);
			pDialog.show();
		}

		/**
		 * Saving Empleado
		 * */
		protected String doInBackground(String... args) {
			Log.e("1","llega a asycntask");
			// getting updated data from EditTexts
			
			
			String mail = lblmail.getText().toString();
			// Building Parameters
			List<NameValuePair> params = new ArrayList<NameValuePair>();
			params.add(new BasicNameValuePair(TAG_FECHA, fecha));//si
			params.add(new BasicNameValuePair(TAG_NOMBRE, nombre));//si
			params.add(new BasicNameValuePair(TAG_APELLIDO, apellido));//si
			params.add(new BasicNameValuePair(TAG_CEDULA1, cedu));
			params.add(new BasicNameValuePair(TAG_HORA,cedula));
			params.add(new BasicNameValuePair(TAG_MAIL,mail));
			//params.add(new BasicNameValuePair("fecha", fech));
			// sending modified data through http request
			// Notice that update Empleado url accepts POST method
			Log.e("1","entra a json");
			JSONObject json = jsonParser.makeHttpRequest(url_actualizar_empleado,
					"POST", params);
			Log.e("1","sale de json");
			// check json success tag
			try {
				int success = json.getInt(TAG_SUCCESS);
				
				if (success == 1) {
					// successfully updated
					Intent i = getIntent();
					// send result code 100 to notify about Empleado update
					setResult(100, i);
					finish();
				} else {
					// failed to update Empleado
				}
			} catch (JSONException e) {
				e.printStackTrace();
			}

			return null;
		}


		/**
		 * After completing background task Dismiss the progress dialog
		 * **/
		protected void onPostExecute(String file_url) {
			// dismiss the dialog once Empleado uupdated
			pDialog.dismiss();
		}
	}

	/*****************************************************************
	 * Background Async Task to Delete Empleado
	 * */
	class DeleteEmpleado extends AsyncTask<String, String, String> {

		/**
		 * Before starting background thread Show Progress Dialog
		 * */
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(EditEmpleadosActivity.this);
			pDialog.setMessage("Borrando Empleado...");
			pDialog.setIndeterminate(false);
			pDialog.setCancelable(true);
			pDialog.show();
		}

		/**
		 * Deleting Empleado
		 * */
		protected String doInBackground(String... args) {

			// Check for success tag
			int success;
			try {
				// Building Parameters
				List<NameValuePair> params = new ArrayList<NameValuePair>();
				params.add(new BasicNameValuePair("cedula", cedula));

				// getting Empleado details by making HTTP request
				JSONObject json = jsonParser.makeHttpRequest(
						url_borrar_empleado, "POST", params);

				// check your log for json response
				Log.d("Borrando Empleado", json.toString());
				
				// json success tag
				success = json.getInt(TAG_SUCCESS);
				if (success == 1) {
					// Empleado successfully deleted
					// notify previous activity by sending code 100
					Intent i = getIntent();
					// send result code 100 to notify about Empleado deletion
					setResult(100, i);
					finish();
				}
			} catch (JSONException e) {
				e.printStackTrace();
			}

			return null;
		}

		/**
		 * After completing background task Dismiss the progress dialog
		 * **/
		protected void onPostExecute(String file_url) {
			// dismiss the dialog once Empleado deleted
			pDialog.dismiss();

		}

	}
}
  #2 (permalink)  
Antiguo 03/03/2013, 09:25
 
Fecha de Ingreso: abril-2011
Ubicación: Alicante
Mensajes: 52
Antigüedad: 13 años
Puntos: 3
Información Respuesta: Como cambiar de un layout a otro

Pues para mostrar otro layout del que muestras normalmente se hace cambiando el siguiente código:

setContentView(R.layout.nombre_Del_LayoutQuinto);

Esto te visualizará el layout Quinto pero seguramente si no cambias el resto del código la aplicación te de errores porque estás instanciando variables del cuarto layout.
  #3 (permalink)  
Antiguo 04/03/2013, 07:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Como cambiar de un layout a otro

Saludos capixi, gracis por su respuesta, y estuve buscando esa linea de codigo "setContentView..." pero no lo encuentro popr ningun lado en mi codigo osea el codigo que puese arriba....como dije al inicio, el codigo que puse en el primer mensaje hace una consulta a la bd y graba y cuando termina de grabar los datos automaticamente me muestra otro layout digamos el layout 3 pero yo quiero que me muestre el layout 1, entonces por esa mi pregunta segun el codigo posteado donde deberia cambiar para que me muestre el layout que yo quiero..gracias
  #4 (permalink)  
Antiguo 04/03/2013, 12:48
 
Fecha de Ingreso: abril-2011
Ubicación: Alicante
Mensajes: 52
Antigüedad: 13 años
Puntos: 3
Información Respuesta: Como cambiar de un layout a otro

A ver, es cierto que en tu código no tiene el código que dije, pero si tendrás este:

setContentView(R.layout.edit_empleado);

y lo debes cambiar por el nombre del layout que quieras mostrar:

te quedaría algo así:

setContentView(R.layout.AquiPondréElNombreDelLayou tQueQuieroMostrar);

De todas formas sigo pensando que si no modificas más el código te dará problemas con los datos que recoges del layout "edit_empleado".



Por cierto el código lo encuentras después del método OnCreate();
  #5 (permalink)  
Antiguo 04/03/2013, 13:36
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Como cambiar de un layout a otro

Es cierto tengo este codigo setContentView(R.layout.edit_empleado);... pero lo he cambiado con el nombre del layout a donde quiero ir pero no funciona..me explico mi primer layout es donde ingreso datos presiono un boton me hace una consulta a la base y me cargar otro layout con los datos del base....en este segundo layout al presionar un dato me lleva a otro layout donde me muestra un formulario para ingresar datos y grabarlos a las base..hast ahi todo bien...cuando se terminar de grabar los datos la aplicacion cargar el segundo layout..pero no no quiero q cargue el segundo sino el primero...he buscado en todo el codigo y no veo donde me este llamando al segundo layout..y como menciona al inicio si tengo este codigo setContentView(R.layout.edit_empleado);donde edit_empleado es el tercer layout donde ingreso los datos para guardarlos..si yo cambio en esta linea setContentView(R.layout.edit_empleado); el layout simplemente nunca llego a mostrar este layout desde mi segundo layout....no se si me hago enternder gracias...

Etiquetas: activity, layout
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.