Как отправить строку из Activity2 в Activity1? - PullRequest
0 голосов
/ 30 апреля 2011

У меня небольшая / большая проблема в моем приложении на Android. У меня есть 2 действия: Activity1 и Activity2.Activity1 имеет TextView и кнопку, а Activity2 имеет EditText и кнопку.Из Activity1 я перехожу в Acvity2 и хочу отправить текст из EditText из Activity2 в Activity 1. Я получаю принудительное закрытие, потому что не знаю порядок в коде.Что я должен делать?Спасибо

Вот мой код:


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Activity1 extends Activity {
    TextView txt;
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       txt = (TextView) findViewById(R.id.txt);

        Button next=(Button)findViewById(R.id.btn);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(Activity1.this,Activity2.class);
                startActivityForResult(intent, 0);
            }

        });
    }

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Activity2 extends Activity {
    EditText txt2;
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        txt2 = (EditText)findViewById(R.id.txt2);
        final Bundle bundle = new Bundle();
        String x=txt2.getText().toString();
        bundle.putString("param",x);
        Button btn2=(Button)findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(Activity2.this,Activity1.class);
                intent.putExtra(bundle)
                finish();

            }

        });
          }
}

Ответы [ 3 ]

0 голосов
/ 30 апреля 2011

В Activity1 @ override onActivityResult.

и In Activity2 напишите это.

txt2 = (EditText)findViewById(R.id.txt2);
    final Bundle bundle = new Bundle();
    String x=txt2.getText().toString();
    bundle.putString("param",x);
    Button btn2=(Button)findViewById(R.id.btn2);
    btn2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent intent = new Intent();
            intent.putExtra("param",x);
            setResult(RESULT_OK, intent);
            finish();

        }
    });
0 голосов
/ 30 апреля 2011

В Activity1 @ override onActivityResult.

и в Activity2 запишите это.

txt2 = (EditText) findViewById (R.id.txt2);

final Bundle bundle = new Bundle();
String x=txt2.getText().toString();
Button btn2=(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent();
        intent.putExtra("param",x);
        setResult(RESULT_OK, intent);
        finish();
    }
0 голосов
/ 30 апреля 2011

Одна проблема с вашим кодом состоит в том, что у вас нет ничего, что обрабатывает результат второго действия. (В первом действии нет onActivityResult.)

В учебнике по блокнотам приведен хороший пример вызова второго действия и получения результата.

...