Pasando el EditText a otra actividad me está mostrando algo

Tengo un texto de edición en xml cuyo nombre y cuando escribo un nombre o algo de agradecimiento se abre un botón en el que voy a hacer clic y luego este botón hace clic para meterme en otra actividad, pero debo pegar lo que escribí en MainActivity en Editar texto.

Este es mi código.

Button btnSearch;
public EditText searchPlugin;

searchPlugin = findViewById(R.id.etSearch);    
btnSearch = findViewById(R.id.btnSearch);
        btnSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, ActivitySearchEngine.class);
                String test = searchPlugin.getText().toString();
                intent.putExtra("TextBox", test);
                startActivity(intent);
            }
        });

Esta es la otra actividad.

setContentView(R.layout.activity_search_result);
Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
String text = i.getStringExtra("TextBox");


searchPlugin = findViewById(R.id.etSearch);
webView = findViewById(R.id.webView);
searchPlugin.setText(text);

Este es el xml de Actividad principal para Editar Texto y Botón que se envía a otra actividad


<button android:id="@+id/btnSearch" style="@style/ButtonSearch" />

This is the xml of the expected EditText




3

7 Respuestas

En segunda actividad en lugar de esto.

Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class);
String text = i.getStringExtra("TextBox");

Escribe esto

String text = getIntent().getExtras().getString("TextBox");

Y para mostrar Google en webView usa esto.

webView.loadUrl("https://www.google.com/search?q=" + text);
2
agregado
@Spritzig esta es otra pregunta. Verifique la respuesta editada
agregado el autor Radesh, fuente
Y cómo pasar aquí el texto webView.loadUrl ("https://www.google.com/search?" + Text); Pero no funciona Pero su respuesta para pasar la cadena es trabajando
agregado el autor Spritzig, fuente

Desea obtener la intención que llamó a la actividad con lo siguiente:

Intent intent = getIntent(); 

Entonces quieres obtener el paquete de extras de esa intención que fue aprobada:

Bundle extras = intent.getExtras(); 

Desde allí puede obtener su cadena que pasó junto con la clave correcta:

extras.getString("TextBox", "This is the default value in case the string extra is null");
2
agregado

En esta linea

Intent i = new Intent (ActivitySearchEngine.this, MainActivity.class);

Está creando una nueva intención en lugar de la que ha pasado a la segunda actividad. Así que solo reemplaza con

Intent i = getIntent ();

Y de esa manera, en realidad está obteniendo la Intención pasada que le interesa obtener de ella.

2
agregado

En la segunda actividad, necesita recuperar el texto haciendo lo siguiente:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    setContentView(R.layout.activity_search_result); //after this
    Bundle arguments = this.getIntent().getExtras();
    String yourString = arguments.getString("TextBox");
}
2
agregado

En tu segunda actividad:

String text = getIntent().getExtras().getString("TextBox");
2
agregado

en su ActivitySearchEngine en lugar de esto:

Intent i = new Intent(ActivitySearchEngine.this, MainActivity.class)
String text = i.getStringExtra("TextBox");

prueba esto:

Intent i = getIntent();
String text = i.getStringExtra("TextBox");

en su caso, no estaba obteniendo la intención anterior, solo estaba creando una nueva que lo haría retroceder, y esa intención no tenía ningún elemento adicional. Lo que hice en su lugar es buscar la intención original y luego obtener los datos.

2
agregado

Hola, muchachos, gracias por la respuesta, todas sus respuestas están funcionando, pero tengo la primera respuesta de @Radesh escrita, por lo que, si comprende, haré su respuesta como aceptada.

0
agregado