【问题标题】:How to pass data from 2nd Activity to first on the click button?如何在点击按钮上将数据从第二个 Activity 传递到第一个?
【发布时间】:2015-07-07 10:00:22
【问题描述】:

我想制作一个与联系人应用非常相似的应用。在第一个活动中,我想显示我的联系人列表,我已经做到了。第一个活动包括添加新按钮,在单击该按钮时,我希望该用户输入名字和姓氏并上传相同的图像。我不知道如何在活动之间导航,以便获得所需的答案。谁能帮帮我吗..?? 请参阅第一个活动:http://postimg.org/image/996iwj5dp/9c92bd46/ 和第二个活动:http://postimg.org/image/wuscpv1tx/fe6f13c4/

在第二个活动中,还有一个按钮可以让用户从图库中选择一张图片,这就是第三个活动。我对从这些活动中获取数据感到困惑。

【问题讨论】:

标签: android listview android-intent


【解决方案1】:

您需要在第一个活动中实现 startActivityforResult() 方法。 按照以下步骤进行操作:

1) 在您的第一个活动中单击添加新按钮时,使用唯一的活动代码调用 startActivityforResult(),而不是调用 startActivity(): 即:public static final int FIRST_ACTIVITY_CODE = 0;

在OnClickListener中,需要实现,

Intent m_data = (FirstActivity.this,SecondActivity.class);
m_data.putextra(//any extra data);
startActivityforResult(FIRST_ACTIVITY_CODE,data);

2) 现在,当您从第二个活动中添加了另一个用户并且您想将一些数据从 SecondActivity 传递给 FirstActivity 时,请按照以下步骤操作: 在保存数据后完成 SecondActivity 之前,

Intent m_data = getIntent();
m_data.putExtra(//data to pass in FirstActivty);
m_data.putExtra(//data to pass in FirstActivty);
.
.
.
setResult(RESULT_OK,m_data);
finish();

3) 在 FirstActivty 的 onActivtyResult() 中,执行以下步骤:

@Override
    protected void onActivityResult(int p_requestCode, int p_resultCode, Intent p_data)
    {
        if(p_requestCode == FIRST_ACTIVITY_CODE && p_resultCode == RESULT_OK)
        {
            NewData = p_data.getExtras().get(//your data);
            // update data 
        }
        super.onActivityResult(p_requestCode, p_resultCode, p_data);
    }

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2021-06-12
    相关资源
    最近更新 更多