如何从当前活动中获得结果,然后回到上一个活动

富丽堂皇

我在不同的国家/地区有五项活动,例如印度,斯里兰卡,阿根廷,美国,中国,每个活动都包含用于选择当前地点的地点选择器活动。

当我在印度活动上按一个按钮时,将启动地点选择器活动。然后选择位置并在印度活动上显示此位置。例如,当我在阿根廷活动上按一个按钮时,将启动位置选择器活动。位置,并在阿根廷活动上显示此位置。

为此,我想将一些数据发送回上一屏幕。我使用了共享的首选项,但是当我从任何活动中选择位置时,它总是在印度活动中显示数据,而不是之前从中启动位置选择器活动的活动。

简而言之,我需要从该地点选择器活动中获取一个结果,然后返回上一个活动。

以下是我从位置选择器发送数据的代码

   CharSequence city = place.getName();
   CharSequence cityAddress = place.getAddress();

            SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = settings.edit();
            editor.putString("city_address", (String) cityAddress);
            editor.putString("city_name", (String) city);
            editor.commit();

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

这是每个活动中用于显示数据的代码

  SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
    String n = settings.getString("city_name", "");
    String a = settings.getString("city_address", "");
    cityname.setText(n);
    cetlocation.setText(a);

我已经阅读了有关StartActivityForResult()方法的信息,但是我不确定如何正确使用它,是否有任何示例?请帮助我,我是android studio的新手。

Jyoti JK

当我在India活动上按下按钮时,将启动地点选择器活动。然后选择位置并在India活动上显示此位置。

如您所说,场所选择器活动是获取数据,在获取数据之后,您需要返回到“相关国家”活动,并希望显示该详细信息。

我的建议是使用onResume()startActivityforResult方法。

方法1

在您的位置选择器活动中

            SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = settings.edit();
            editor.putString("city_address", (String) cityAddress);
            editor.putString("city_name", (String) city);
            editor.commit();
            finish();

在您的国家/地区活动中,

 @Override
    public void onResume() {
       SharedPreferences settings = getSharedPreferences("city_address", Context.MODE_PRIVATE);
       String n = settings.getString("city_name", "");
       String a = settings.getString("city_address", "");
       cityname.setText(n);
       cetlocation.setText(a);
}

方法2

在您的国家/地区活动中,当您开始进行地点选择器活动时,请使用

Intent i = new Intent(this, Placepickeractivity.class);
startActivityForResult(i, 1);

并重写onActivityResult方法,

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == 1){
          String n = data.getStringExtra("city_name");
          String a = data.getStringExtra("city_address");
          cityname.setText(n);
          cetlocation.setText(a);

        }
    }
}

在您的地点选择器活动中,将结果发送为

Intent returnIntent = new Intent();
returnIntent.putExtra("city_address", (String) cityAddress);
returnIntent.putExtra("city_name", (String) city);
setResult(1, returnIntent);
finish();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何防止回到上一个活动?

创建新工作表,然后返回到上一个活动工作表

当前活动处于暂停状态后,如何转到上一个活动

如何回到android中的上一个活动?

如何单击返回到上一个活动,两次单击该如何退出应用程序?

回到android中的上一个活动

如何在android中关闭当前活动返回上一个活动?

如何使用活动显示的片段转到上一个活动

如何完成当前活动并返回上一个片段?

在另一个活动中回退到上一个片段

注销导航到上一个活动

CodeIgniter + Bootstrap选项卡,重新加载不会返回到上一个活动选项卡

我的活动完成并导航到上一个活动,而没有该活动的必要代码

如何回到上一个开关?

如何回到上一个片段

如何通过单击来获得屏幕,并在最后一个屏幕中单击它,这应该是上一个活动的结果

如何将FragmentActivity的后堆栈弹出到上一个活动?

当当前活动具有 SurfaceView 时如何返回上一个活动?

如何不完成当前活动就返回上一个活动

Android使用共享的首选项和Dispatcher活动,以返回到上一个活动(重启手机后)

如何返回上一个活动?

如何返回上一个活动

新活动启动时或恢复到上一个活动时的Android FAB动画

将数据从当前片段传回到上一个片段

如何在Android中关闭活动并返回上一个活动

如果未选择任何图像,如何将默认图像传递到上一个活动

按下活动操作栏后退按钮时如何转到上一个选定的选项卡

导航回到上一个AMP列表页面

powershell回到上一个换行符