1

我的情况有点特殊,所以我在这里解释一下。我有 2 个活动,第一个有 2 个编辑和 1 个按钮,第二个只有一个按钮。当按下活动 1 中的按钮时,程序会有意地将来自文本编辑的信息发送到活动 2,并将其显示在活动 2 上。在活动 2 上,按钮只是为了返回活动 1,我这样称呼它

    Button next = (Button) findViewById(R.id.button2);

    Intent myIntent = getIntent();
    String nume = myIntent.getStringExtra("nume");
    String prenume = myIntent.getStringExtra("prenume");
    next.setText(nume + " " + prenume);

    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent intent = new Intent();
            setResult(RESULT_OK, intent);
            finish();
        }

    });

我第一次在编辑中输入信息时,它们在活动 2 中显示正常,但是在我回到活动 1 并在活动 2 上的编辑中输入新值后,将显示第一次输入的值。

所以问题似乎是每次我按下按钮 1 从第二次尝试开始传递到 Activity 2 时,意图传递的编辑都不会更新。

4

2 回答 2

6

似乎使用 anextras Bundle会是一个更好的主意。你像这样实现它;

活动一

 Intent pass = new Intent(ACTION_NAME);
 Bundle extras = new Bundle();
 extras.putString("nume", NUME_VAL);
 extras.putString("prenume", PRENUME_VAL);
 pass.putExtras(extras);
 startActivity(pass);

活动二

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     Bundle data = getIntent().getExtras();
     String nume = data.getStringExtra("nume");
     String prenume = data.getStringExtra("prenume");
}
于 2012-05-01T11:48:15.260 回答
6

从第一个导航到第二个:

Button next = (Button) findViewById(R.id.button2);
next.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getApplicationContext(),Second.class);
        intent.putExtra("Tag", "Value");
        startActivity(intent);
        finish();
    }

});

第二到第一:

 Button previous= (Button) findViewById(R.id.button);
 previous.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Intent intent = new Intent(getApplicationContext(),First.class);
        startActivity(intent);
    }

});

关于创建的第二个活动:

Intent i = getIntent();
String val = i.getStringExtra("Tag");
于 2012-05-01T11:51:19.277 回答