entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Pasar parámetros entre Activitys

Tengo un problemilla al recibir parámetros entre dos activitys, la cuestión es que yo tengo en el actionbar del activity la típica flechita para volver atrás, tengo el siguiente método:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == event.KEYCODE_BACK) {
            Intent activity = new Intent(this,NoticiaCompleta.class);
            activity.putExtra("idn",id);
            activity.putExtra("titulo",titulo);
            activity.putExtra("mensaje",cuerpo);
            activity.putExtra("autor",autor);
            activity.putExtra("fecha",fecha);
            startActivity(activity);
            finish();
        }

Que es para que vuelva atrás al pulsar sobre el botón fisico del movil, desde el botón fisico si me recoge los parámetros pero desde la flecha del actionbar no.... ¿Como puedo solucionarlo?

saludos

3 Respuestas

1voto

Xuelo Puntos600

ya lo he solucionado con éste metodo

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:

                Intent activity = new Intent(this,NoticiaCompleta.class);
                activity.putExtra("idn",id);
                activity.putExtra("titulo",titulo);
                activity.putExtra("mensaje",cuerpo);
                activity.putExtra("autor",autor);
                activity.putExtra("fecha",fecha);
                startActivity(activity);
                finish();

                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

0voto

x4mp73r comentado

Muy bien, que bien que lo solucionaste. Deberías de ponerlo en una respuesta y seleccionarla como respuesta correcta :)

0voto

Peter comentado

Si esta es la solución, por favor selecciónala como correcta.

1voto

x4mp73r Puntos13390

Hola @Xuelo.

Nunca eh implementado lo que dices, pero te presento una alternativa, en caso no puedas solucionar tu problema podrías usar mi solución.

Mi alternativa es que crees tu mismo un actionBar y lo uses en la activity que necesites. Es muy fácil y además tienes el control sobre el botón atrás sin fallar en el intento. Te voy a proveer los recursos.

ActionBar_custom.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#212121">

    <ImageButton
        android:id="@+id/buttonActionBarPresentationBack"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@null"
        android:scaleType="centerInside"
        android:src="@drawable/abc_ic_ab_back_mtrl_am_alpha"
        android:paddingRight="50dp"
        android:onClick="toggleMenu"
        android:paddingTop="4dp"
        android:layout_marginRight="50dp" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Artículo"
        android:textSize="20sp"
        android:textStyle="bold"
        android:textColor="#ffffff"
        android:id="@+id/tituloArticulo"
        android:layout_marginLeft="80dp" >
</RelativeLayout>

Esto se ve así:
enter image description here

Bien, en el onCreate de la activity pones esto:

 getSupportActionBar().setDisplayShowHomeEnabled(false);
        //ActionBar personalizado para los botones
        View mActionBarView = getLayoutInflater().inflate(R.layout.ActionBar_custom, null);
        getSupportActionBar().setCustomView(mActionBarView);
        getSupportActionBar().setDisplayOptions(getSupportActionBar().DISPLAY_SHOW_CUSTOM);
        bar_actionBar_button(); // este método es para controlar el botón "Atrás"

    public void bar_actionBar_button() {

        buttonActionBarBack = (ImageButton) findViewById(R.id.buttonActionBarPresentationBack);

        buttonActionBarBack.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                //Aquí colocas lo del putExtra y todo eso para pasar los datos a la activty.
             finish();//Para cerrar la activity al clickear sobre el botón

            }

        });

    }

Usándolo en una activity esto se ve así:

enter image description here

Como te puedes dar cuenta, de esta manera ya puedes implementar lo de los putExtra directamente en el botón "Arrow Back", es decir, el botón de atrás directamente en el evento:

buttonActionBarBack.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                //Aquí colocas lo del putExtra y todo eso para pasar los datos a la activty.
             finish();//Para cerrar la activity al clickear sobre el botón

            }

        });

    }

Espero me hayas entendido y te sea de ayuda en caso de que no encuentres una solución a como la pides.

Saludos.

1voto

Exedore Puntos440

Conozco tres formas.

1.- Desde el Intent cuando lanzas la próxima Activity:

Intent i = new Intent(getApplication().getApplicationContext(), ReporteNormalTabsActivity.class);
   i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
   i.putExtra(SessionUtil.TIPO_SESSION, SessionUtil.LOGIN_NORMAL);
   getApplication().getApplicationContext().startActivity(i);

2.- Usando la persistencia de configuración de Android

SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);
Editor edit = userDetails.edit();
edit.clear();
edit.putString("username", txtUname.getText().toString().trim());
edit.putString("password", txtPass.getText().toString().trim());
edit.commit();

3.- Usando una variable global
(AndroidManifest.xml)

    <application
        android:name=".package.ObjetoVO"
   ...

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta