android - 使用 Intent 将字符串返回到先前的 Activity

标签 android android-intent

我有 2 个 Activity ,其中第二个 Activity 返回用户的文本输入并分别更改 TextView 。 但是,当我从第二个 Activity 传递文本输入时,它们返回为空。

返回主 Activity 的第二个 Activity 的 onClick 方法:

public void onClick(View v)
        {
            Intent i = new Intent();
            EditText txt1 = (EditText)findViewById(R.id.txt_name);
            i.putExtra("str3", txt1.getText());

            EditText txt2 = (EditText)findViewById(R.id.txt_address);
            i.putExtra("str4", txt2.getText());

            setResult(RESULT_OK, i);
            finish();
        }
    });
}

第二个 Activity 完成后调用的方法

public void onActivityResult(int requestCode,int resultCode, Intent data)
{
    TextView txt = (TextView)findViewById(R.id.txt_one);
    txt.setText(getIntent().getStringExtra("str3"));
}

最佳答案

试试下面的

 public void onActivityResult(int requestCode,int resultCode, Intent data)
 {
 txt.setText(getIntent().getStringExtra("str3"));
 }

同时将所有初始化移动到 onCreate

TextView txt ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    txt = (TextView)findViewById(R.id.txt_one);
    ... // rest of the code 
}

同样适用于您的编辑文本。声明为类成员并在 onCreate 中初始化 无需每次单击按钮时都初始化

编辑:

也可以使用下面的

public Editable getText()

在 API 级别 1 中添加

返回 TextView 显示的文本。如果使用 BufferType.SPANANABLE 或 BufferType.EDITABLE 参数调用 setText(),您可以将此方法的返回值分别转换为 Spannable 或 Editable。注意:不要修改返回值的内容。如果你想要一个可修改的,你应该先制作你自己的副本。

http://developer.android.com/reference/android/widget/EditText.html

  String value1 = txt1.getText().toString();
  i.putExtra("str3", value1);

关于android - 使用 Intent 将字符串返回到先前的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121655/

相关文章:

android - 从Windows切换到Linux(Ubuntu)后如何继续使用git?

java - 媒体播放器的 Intent 过滤器(Youtube 视频播放)

android - 分享内容 : Permission Denial when using Intent. createChooser

android - "android:debuggable"与 DDMS 中的日志打印输出有什么关系?

android - 如何设置安卓背景音乐只播放一次

android - iOS/Android - 你能读/写移动操作系统上的数据链路层吗?

android - 更改程序中按钮上的文本

android - 在 Android 中发送短信后关闭短信 Activity/屏幕

android - 如何检查默认邮件客户端

android - 关于Android中自定义权限的几个问题