2011-05-31 18 views
12

Estoy desarrollando una aplicación de Android en la que he tomado dos botones y un cuadro de texto de edición. Quiero pasar los datos del cuadro de texto de edición de la cadena a la siguiente actividad al hacer clic en uno de los botones, ¿cómo puedo pasar el texto a la siguiente actividad y recibir ese texto en la nueva actividad iniciada para poder usar el texto en eso.¿Cómo pasar datos de texto de edición en forma de cadena a la siguiente actividad?

mi código para la primera actividad es

EditText Urlis=(EditText)findViewById(R.id.entry); 
final Button button = (Button) findViewById(R.id.ok); 
final Intent i=new Intent(this , RSSReder.class); 
final String choice=Urlis.getText().toString(); 

i.putExtra("key", choice); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     startActivity(i); 
    }  
}); 

y para la llamada actividad es

public class RSSReder extends Activity implements OnItemClickListener { 

    public String RSSFEEDOFCHOICE; 
    public final String tag = "RSSReader"; 
    private RSSFed feed = null; 

    /** Called when the activity is first created. */ 

    public void onCreate(Bundle abc) { 
     super.onCreate(abc); 
     setContentView(R.layout.next1); 

     Intent i = getIntent(); 
     RSSFEEDOFCHOICE =i.getStringExtra("key"); 

     // go get our feed! 
     feed = getFeed(RSSFEEDOFCHOICE); 

     // display UI 
     UpdateDisplay(); 

    } 
} 

¿hay algo que deba cambiar o eliminar.

+1

trate de poner "elección String = Urlis.getText(). ToString(); " dentro del método "onClick()". También ponga "i.putExtra (" clave ", opción);" en "onClick()" después de él. Donde obtiene el texto en este momento, lo más probable es que esté configurando 'elección' para que sea una Cadena en blanco. Debe obtener el texto cuando el usuario presiona el botón para iniciar la nueva actividad. – Squonk

+0

thanx Mister mi aplicación de código está funcionando fue realmente útil –

+0

Feliz de poder ayudar. – Squonk

Respuesta

16

Después de haber utilizado setContentView(...) lo que necesita hacer referencia a su EditText y obtener el texto como ...

EditText et = (EditText) findViewById(R.id.my_edit_text); 
String theText = et.getText().toString(); 

para pasarlo a otro Activity utiliza un Intent. Ejemplo ...

Intent i = new Intent(this, MyNewActivity.class); 
i.putExtra("text_label", theText); 
startActivity(i); 

En la nueva actividad (en onCreate()), se obtiene la Intención y recuperar la cadena ...

public class MyNewActivity extends Activity { 

    String uriString; 

    @Override 
    protected void onCreate(...) { 

     ... 

     Intent i = getIntent(); 
     uriString = i.getStringExtra("text_label"); 

    } 
} 
+0

+1, es agradable. Mister también ha mencionado los datos de envío y recepción. –

+2

'String theText = et.getText();' arrojaría un error de tiempo de compilación ya que 'getText()' devuelve un objeto 'Editable'. También debe llamar al método 'toString()'. –

+1

@ Octavian: ¡De acuerdo, señor! Es temprano en la mañana aquí y no había tomado mi primera taza de café. Error corregido, gracias por señalarlo. – Squonk

2

Puede utilizar intents para el propósito. Aquí hay un tutorial para lo mismo.

también comprobar How to pass the values from one activity to previous activity

Lectura del contenido de una cadena de clic de botón.

EditText mText = (EditText)findViewById(R.id.edittext1); 

Button mButton = (Button)findViewById(R.id.button1); 

mButton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
          String text = mText.getText.toString(); 
          Intent intent = new Intent(this, Activity2.class); 
          intent.putExtra("key", text); 
          startActivity(intent); 
        } 
       }); 
2

Tienes que usar Intent para pasar datos a la siguiente actividad.

Intent intent = new Intent(CurrentActivity.this,NextActivity.class); 
intent.putExtra("sampleString", "youstringdata"); 

En NextActivity:

String sampleData = getIntent().getExtras().getLong("sampleString");

2

Dentro de su botón onClick oyente intente lo siguiente,

String str=editText.getEditableText().toString(); 

Ahora use su intención,

Intent intent=new Intent(this,nextActivity.this); 
intent.putExtra("editText_value",str); 
startActivity(intent); 
Cuestiones relacionadas