完成之前的活动设置视图(Setting view on previous activity on finish)

编程入门 行业动态 更新时间:2024-10-27 21:24:51
完成之前的活动设置视图(Setting view on previous activity on finish)

我有两个活动,活动A有一个文本框和一个按钮,通过按下按钮,我将进入活动B.在活动B中,包含一个editText和一个按钮,编辑editText后点击活动B中的按钮,它会返回到活动a并在TextView中显示文本。

public class A extends AppCompatActivity{ ... public void setText(String text){ textView.setText(text); } } public class B extends AppCompatActivity{ ... Button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { A a = new A(); a.setText(editText.getText().toString()); finish(); } }); }

然而,在按下按钮之后,BI会得到一个nullpointerexception。 我不想把B改成一个片段。

I have two activities, activity A has a textview and a button, by pressing the button I will go to activity B. In activity B there contains a editText and a button, after editing editText then clicking on the button in activity B it will then go back to activity a and display the text in the TextView.

public class A extends AppCompatActivity{ ... public void setText(String text){ textView.setText(text); } } public class B extends AppCompatActivity{ ... Button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { A a = new A(); a.setText(editText.getText().toString()); finish(); } }); }

however after pressing button in activity B I will get a nullpointerexception. I do not want to change B to a fragment.

最满意答案

你想要做这样的事情

public class A extends AppCompatActivity{ public void goToB_activityBringText(){ Intent i = new Intent(this, B.class); startActivityForResult(i, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if(resultCode == Activity.RESULT_OK){ String result=data.getStringExtra("result"); textView.setText(result); } if (resultCode == Activity.RESULT_CANCELED) { //Write your code if there's no result } } } } public class B extends AppCompatActivity{ ... Button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent returnIntent = new Intent(); returnIntent.putExtra("result","This is my text value"); setResult(Activity.RESULT_OK,returnIntent); finish(); } }); }

阅读Activity的startActivityForResult方法的完整详细信息

you want to do something like this

public class A extends AppCompatActivity{ public void goToB_activityBringText(){ Intent i = new Intent(this, B.class); startActivityForResult(i, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if(resultCode == Activity.RESULT_OK){ String result=data.getStringExtra("result"); textView.setText(result); } if (resultCode == Activity.RESULT_CANCELED) { //Write your code if there's no result } } } } public class B extends AppCompatActivity{ ... Button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent returnIntent = new Intent(); returnIntent.putExtra("result","This is my text value"); setResult(Activity.RESULT_OK,returnIntent); finish(); } }); }

Read full details of startActivityForResult method of Activity

更多推荐

本文发布于:2023-07-14 23:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1108322.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:视图   Setting   view   finish   activity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!