如何在按下时将数据从第二个活动传递到第一个活动? - android

如何在按下时将数据从第二个活动传递到第一个活动? - android

我有2个活动,Activity1Activity2

Activity1我有一个按钮TextView的。单击按钮时,将启动Activity2

Activity2我的EditText中

我想显示从检索到的数据的EditText活性2的TextView活性1当从压回活性2

有人可以帮助我使用代码来完成这项工作吗?


弑天下
浏览 627回答 3
3回答

慕后森

使用startActivityForResult和使用setResult方法将Activity2从Activity2发送回Activity1。在Activity1中,您需要覆盖onActivityResult以TextView使用EditTextActivity2中的数据进行更新。例如:在Activity1中,启动Activity2为:Intent i = new Intent(this, Activity2.class);startActivityForResult(i, 1);在Activity2中,setResult用于发回数据:Intent intent = new Intent();intent.putExtra("editTextValue", "value_here")setResult(RESULT_OK, intent);        finish();在Activity1中,接收数据onActivityResult:public void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     if (requestCode == 1) {          if(resultCode == RESULT_OK) {              String strEditText = data.getStringExtra("editTextValue");          }          }}如果可以,也可以使用SharedPreferences在活动之间共享数据。

慕村9548890

活动1应该开始活性2用startActivityForResult()。Activity2应该用于setResult()将数据发送回Activity1。在Activity2中,@Overridepublic void onBackPressed() {     String data = mEditText.getText();     Intent intent = new Intent();     intent.putExtra("MyData", data);     setResult(resultcode, intent);}在Activity1中,onActivityResult(int requestCode, int resultCode, Intent data) {     if (requestCode == 1) {         if(resultCode == RESULT_OK) {             String myStr=data.getStringExtra("MyData");             mTextView.setText(myStr);         }     }}

蝴蝶不菲

当我把其他的答案没有工作setResult在onBackPressed。评论对super的onBackPressed调用和finish手动调用可以解决问题:@Overridepublic void onBackPressed() {     //super.onBackPressed();     Intent i = new Intent();     i.putExtra(EXTRA_NON_DOWNLOADED_PAGES, notDownloaded);     setResult(RESULT_OK, i);     finish();}在第一项活动中:@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     if (requestCode == QUEUE_MSG) {         if (resultCode == RESULT_OK) {             Serializable tmp = data.getSerializableExtra(MainActivity.EXTRA_NON_DOWNLOADED_PAGES);             if (tmp != null)                 serializable = tmp;         }     }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android