返回Android中的上一个活动时传输数据

时间:2014-11-11 07:17:48

标签: android android-intent

我有一个显示用户名的主要活动。当用户想要编辑用户名时,它将转到包含代码的个人资料活动:

Intent intent=new Intent(MainActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("username", username);
startActivity(intent);

用户编辑用户名(保存在服务器上)后,可以按返回键返回上一个(主)活动。但是,此时,用户名未更新,因为没有传输数据。

当用户从个人资料活动返回主要活动时,如何传输更新后的用户名?

4 个答案:

答案 0 :(得分:2)

您可以将活动作为startActivityForResult(Intent i, int requestcode);

开始

和第二项活动

 Intent intent = new Intent();
                    intent.putExtra("key", yourvalue);
                    setResult(1, intent);
                    finish();

这将触发onActivityResult您以前的活动。

 protected void onActivityResult(int arg0, int arg1, Intent arg2) {
            //get the data from arg2

        }

答案 1 :(得分:1)

您需要为结果启动活动。按照步骤进行操作

步骤1:使用结果

启动活动
int REQUEST_CODE = 1;
startActivityForResult(intent, REQUEST_CODE);

步骤2:从ProfileActivity

返回一些值
Intent resultIntent = new Intent();
resultIntent.putExtra("NAME_OF_THE_PARAMETER", valueOfParameter);
...
setResult(Activity.RESULT_OK, resultIntent);
finish();

第3步:从主要活动中收集数据

覆盖@onActivityResult(...)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) { // Please, use a final int instead of hardcoded int value
    if (resultCode == RESULT_OK) {
        String value = (String) data.getExtras().getString("NAME_OF_THE_PARAMETER");

参考

答案 2 :(得分:0)

首先完成()您的主要活动。

Intent intent=new Intent(MainActivity.this, ProfileActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("username", username);
startActivity(intent);
finish();     // Add this 

然后在所有更新结束后,回想一下您的主要活动, 像这样, 从您的ProfileActivity调用MainActivity。

Intent intent=new Intent(ProfileActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
finish();     // Add this 

默认情况下从服务器加载用户名

答案 3 :(得分:0)

您可以将更新的配置文件名称存储在Application类中,因为Application类只在我们启动应用程序时创建一次。您可以轻松更新UI。应用程序类只是一个Android项目中的一个,它在全球范围内使用。我认为这对你有帮助。