android - 如何将值从一个 Activity 传递到上一个 Activity

标签 android android-activity

如何将值从一个屏幕传递到其前一个屏幕?

考虑这种情况:我有两个 Activity 。第一个屏幕有一个 TextView 和一个按钮,第二个 Activity 有一个 EditText 和一个按钮。

如果我点击第一个按钮,那么它必须移动到第二个 Activity ,用户必须在文本框中输入一些内容。如果他从第二个屏幕按下按钮,那么文本框中的值应该移动到第一个 Activity ,并且应该显示在第一个 Activity TextView 中。

最佳答案

要在另一个 Activity 中捕获对一个 Activity 执行的操作,需要三个步骤。

使用主 Activity 中的 startActivityForResult 将辅助 Activity(您的“编辑文本”Activity)作为子Activity 启动。

Intent i = new Intent(this,TextEntryActivity.class);    
startActivityForResult(i, STATIC_INTEGER_VALUE);

在子 Activity 中,您需要创建一个新的 Intent 并将输入的文本值包含在其附加包中,而不仅仅是在用户单击按钮时关闭 Activity。在调用 finish 之前将其传递回父调用 setResult 以关闭辅助 Activity。

Intent resultIntent = new Intent();
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, enteredTextValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();

最后一步是调用Activity:重写onActivityResult来监听来自文本输入Activity的回调。从返回的 Intent 中获取额外内容以获取您应该显示的文本值。

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) {     
  super.onActivityResult(requestCode, resultCode, data); 
  switch(requestCode) { 
    case (STATIC_INTEGER_VALUE) : { 
      if (resultCode == Activity.RESULT_OK) { 
      String newText = data.getStringExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
      // TODO Update your TextView.
      } 
      break; 
    } 
  } 
} 

关于android - 如何将值从一个 Activity 传递到上一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1124548/

相关文章:

Android 在每次运行时保存日志以获取崩溃报告

android - 需要在线程中升级 SQLite,如何以及在何处升级?

javascript - 社交共享插件在 Ionic Cordova 中不起作用

android: 使用 ActivityGroup 嵌入 Activity

Android 嵌套 fragment

android - 在 eclipse 中调试 Android 返回堆栈

android webview相关

android - BigPictureStyle 通知在小米 MIUI-8 中无法正确显示

Android:线程无限循环/手机过热

android - 我如何从 Activity 中知道它的所有 Fragments 都调用了 onCreateView