在不重新启动的情况下为当前活动添加意图

时间:2013-11-10 18:52:42

标签: android android-intent

我有两个活动(A和B)。活动 A包含两个 EditText(1和2)。我有意从A启动Activity B.然后,从Activity B,我有意将一个字符串传递给EditText2。

我现在的问题是,在将活动B中的意图传递给EditText2之后,我在EditText1中输入的单词消失了。我的问题是,即使将活动B中的意图传递给EditText2,我怎么能保持我在EditText1中输入的单词。这是我的问题的循环:

在EditText1中键入内容>发布活动B>从Activity B获取字符串并在EditText2>中传递它EditText1中键入的单词消失

这是我的代码:

活动A:

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);

        Intent intent = getIntent();
        String message = intent.getStringExtra(ActivityB.EXTRA_MESSAGE);

        EditText editText = (EditText) findViewById(R.id.edittext2);
        editText.setText(message);   
    }

    public void to_actb(View view) {

        Intent intent = new Intent(this, ActivityB.class);
        startActivity(intent);
    }

活动B

public class ActivityB extends Activity {

    public final static String EXTRA_MESSAGE = "hello.hey.MESSAGE";

....

    public void to_acta(View view) {

        Intent intent = new Intent(this, ActivityA.class);
        TextView textView = (TextView) findViewById(R.id.text);
        String message = textView.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);      
    }

1 个答案:

答案 0 :(得分:0)

使用这种结构,你正在做的是:

致电ActivityA(例如ID:1) - >致电ActivityB(ID:2) - >调用ActivityA(ID 3 !!)您没有调用与第一次相同的活动,您将获得具有自己值的新ActivityA。

解决此问题的最佳方法是使用startActivityforResult,在return-intent中传递数据。在这里,您可以找到一个很好的例子https://stackoverflow.com/a/10407371/585540