android - 如何将值从一个 Activity 传递到上一个 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; 
    } 
  } 
} 

https://stackoverflow.com/questions/1124548/

相关文章:

android - 将 largeHeap 设置为 true 有什么好处?

android - 如何调试签署发布的apk?

android - 从 android 图库中选择多张图片

android - 是否可以更改android单选按钮组中的单选按钮图标

android - 在 Android 中通过 Canvas 创建一个空位图并进行绘图

android - ListView addHeaderView 导致位置加一?

android - post方法到底是做什么的?

android - ViewPager.setOffscreenPageLimit(0) 无法按预期

android - 清算 Intent

android - 如何在 Android 中更改代理设置(尤其是在 Chrome 中)