Diferencia entre revisiones de «Usuario:ManuelRomero/Android/Interfaz/intent»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con '{{:Usuario:ManuelRomero/Android/Interfaz/nav}} <br>')
 
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/Android/Interfaz/nav}}
 
{{:Usuario:ManuelRomero/Android/Interfaz/nav}}
 
<br>
 
<br>
 +
===Intent===
 +
Son objetos que nos va a permitir invocar a acciones o activitys para que se ejectuen
 +
*De esta forma vamos a poder hacer nuestra aplicación como una serie de invocaciones de activity a traves de intems
 +
*estas acciones pueden estar en el sistema, por lo que en este caso el Intent invocaría a una acción del api
 +
*Ejemplo llamar por teléfono
 +
usamos '''''intent.ACTION_CALL'''''
 +
Intent accion = new Intent(Intent.ACTION_CALL);
 +
accion.setData(Uri.parse("tel+600006665");
 +
startActivity(accion);
 +
===Invocar de una activity a otra===
 +
*Creamos una activity con un botón
 +
*Cuando lo presionemos que se abra otra activity
 +
*El método al boton asociado suponemos clickUserData(View )
 +
<source lang=java>
 +
public void clickUserData(View v){
 +
 +
//Creo un intent con una activity que voy a invocar
 +
Intent datosUsuario = new Intent();
 +
Log.w("DEBUG","click");
 +
 +
//Establezco la activity en el intent
 +
datosUsuario.setClass(getApplicationContext(), ValidarDatos.class);
 +
 +
startActivity(datosUsuario);
 +
}
 +
 +
</source>
 +
===Intent que retorna valores===
 +
*Vamos a ver como un intent retorna valores a la activity que lo invoca
 +
*Y como esta activity puede recuperarlos
 +
;La activity que invoca
 +
<source lang=java>
 +
package com.example.probandointent;
 +
 +
import android.app.Activity;
 +
import android.content.Intent;
 +
import android.os.Bundle;
 +
import android.util.Log;
 +
import android.view.View;
 +
import android.widget.TextView;
 +
 +
public class SolicitudDatos extends Activity {
 +
   
 +
   
 +
@Override
 +
protected void onCreate(Bundle savedInstanceState) {
 +
super.onCreate(savedInstanceState);
 +
setContentView(R.layout.activity_main);
 +
}
 +
 +
public void clickUserData(View v){
 +
 +
//Creo un intent con una activity que voy a invocar
 +
Intent datosUsuario = new Intent();
 +
Log.w("DEBUG","click");
 +
 +
//Establezco la activity en el intent
 +
datosUsuario.setClass(getApplicationContext(), ValidarDatos.class);
 +
datosUsuario.putExtra("nombre","");
 +
datosUsuario.putExtra("apellido","");
 +
 +
startActivityForResult(datosUsuario,1);
 +
}
 +
@Override
 +
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 +
Log.w("DEBUG","Acabo de terminar");
 +
    if ( requestCode == 1 ){
 +
          if ( resultCode == Activity.RESULT_OK ){
 +
          Log.w("DEBUG","Voy a leer los datos");
 +
          TextView tNombre= (TextView) findViewById(R.id.txtNombre);
 +
          TextView tApellido= (TextView) findViewById(R.id.txtApellido);
 +
          Log.w("DEBUG","Ahora lo asigno a los txt");
 +
          tNombre.setText(data.getExtras().get("nombre").toString());
 +
          tApellido.setText(data.getExtras().get("apellido").toString());
 +
          }
 +
    }
 +
 +
}
 +
}
 +
</sourece>
 +
;La activity invocada
 +
<source lang=java>
 +
package com.example.probandointent;
 +
 +
import android.app.Activity;
 +
import android.content.Intent;
 +
import android.os.Bundle;
 +
import android.util.Log;
 +
import android.view.View;
 +
import android.widget.EditText;
 +
import android.widget.Toast;
 +
 +
public class ValidarDatos extends Activity {
 +
@Override
 +
protected void onCreate(Bundle savedInstanceState) {
 +
super.onCreate(savedInstanceState);
 +
setContentView(R.layout.activity_main_validar);
 +
}
 +
public void clickUserAceptar(View v){
 +
  //Creo un intent para pasar valores a la activity que me invocó
 +
Log.w("DEBUG","Antes de crear intent de retorno");
 +
  Intent i = new Intent( this, ValidarDatos.class );
 +
  Log.w("DEBUG","Creado intent de retorno");
 +
 
 +
  //Agrego valores al activity en parejas
 +
  EditText n = (EditText)findViewById(R.id.editNombre);
 +
  EditText a = (EditText)findViewById(R.id.editApellido);
 +
  Log.w("DEBUG","Nombre "+n.getText().toString());
 +
  Log.w("DEBUG","Apellido "+a.getText().toString());
 +
  //Toast.makeText(getApplicationContext(),"Nombre "+n.getText().toString(),Toast.LENGTH_LONG).show();
 +
 
 +
      i.putExtra("nombre",n.getText().toString()) ;
 +
      i.putExtra("apellido",a.getText().toString()) ;
 +
      Log.w("DEBUG","Asignados valores de retorno");
 +
     
 +
      //Establezco que se han asignado correctaemente los valores (la bandera)
 +
      setResult( Activity.RESULT_OK, i );
 +
      Log.w("DEBUG","Establecido el retorno ahora finiquito");
 +
     
 +
      //Finalizo mi actividad
 +
      finish();
 +
 +
}
 +
}
 +
</source>
 +
*No olvidar insertar la nueva activity en el ''manifest''

Revisión de 02:50 30 may 2013



Intent

Son objetos que nos va a permitir invocar a acciones o activitys para que se ejectuen

  • De esta forma vamos a poder hacer nuestra aplicación como una serie de invocaciones de activity a traves de intems
  • estas acciones pueden estar en el sistema, por lo que en este caso el Intent invocaría a una acción del api
  • Ejemplo llamar por teléfono

usamos intent.ACTION_CALL

Intent accion = new Intent(Intent.ACTION_CALL);
accion.setData(Uri.parse("tel+600006665");
startActivity(accion);

Invocar de una activity a otra

  • Creamos una activity con un botón
  • Cuando lo presionemos que se abra otra activity
  • El método al boton asociado suponemos clickUserData(View )
public void clickUserData(View v){
 
	//Creo un intent con una activity que voy a invocar
	Intent datosUsuario = new Intent();
	Log.w("DEBUG","click");
 
	//Establezco la activity en el intent
	datosUsuario.setClass(getApplicationContext(), ValidarDatos.class);
 
	startActivity(datosUsuario);
}

Intent que retorna valores

  • Vamos a ver como un intent retorna valores a la activity que lo invoca
  • Y como esta activity puede recuperarlos
La activity que invoca
package com.example.probandointent;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
 
public class SolicitudDatos extends Activity {
 
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
 
public void clickUserData(View v){
 
	//Creo un intent con una activity que voy a invocar
	Intent datosUsuario = new Intent();
	Log.w("DEBUG","click");
 
	//Establezco la activity en el intent
	datosUsuario.setClass(getApplicationContext(), ValidarDatos.class);
	datosUsuario.putExtra("nombre","");
	datosUsuario.putExtra("apellido","");
 
	startActivityForResult(datosUsuario,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	Log.w("DEBUG","Acabo de terminar");
     if ( requestCode == 1 ){
          if ( resultCode == Activity.RESULT_OK ){
        	  Log.w("DEBUG","Voy a leer los datos");
        	  TextView tNombre= (TextView) findViewById(R.id.txtNombre);
        	  TextView tApellido= (TextView) findViewById(R.id.txtApellido);
        	  Log.w("DEBUG","Ahora lo asigno a los txt");
        	  tNombre.setText(data.getExtras().get("nombre").toString());
        	  tApellido.setText(data.getExtras().get("apellido").toString());
          }
     }
 
}
}
</sourece>
;La activity invocada
<source lang=java>
package com.example.probandointent;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
 
public class ValidarDatos extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main_validar);
	}
public void clickUserAceptar(View v){
	   //Creo un intent para pasar valores a la activity que me invocó
	 Log.w("DEBUG","Antes de crear intent de retorno");
	   Intent i = new Intent( this, ValidarDatos.class );
	   Log.w("DEBUG","Creado intent de retorno");
 
	   //Agrego valores al activity en parejas
	   EditText n = (EditText)findViewById(R.id.editNombre);
	   EditText a = (EditText)findViewById(R.id.editApellido);
	   Log.w("DEBUG","Nombre "+n.getText().toString());
	   Log.w("DEBUG","Apellido "+a.getText().toString());
	   //Toast.makeText(getApplicationContext(),"Nombre "+n.getText().toString(),Toast.LENGTH_LONG).show();
 
       i.putExtra("nombre",n.getText().toString()) ;
       i.putExtra("apellido",a.getText().toString()) ;
       Log.w("DEBUG","Asignados valores de retorno");
 
       //Establezco que se han asignado correctaemente los valores (la bandera)
       setResult( Activity.RESULT_OK, i );
       Log.w("DEBUG","Establecido el retorno ahora finiquito");
 
       //Finalizo mi actividad
       finish();
 
}
}
  • No olvidar insertar la nueva activity en el manifest