我有两个活动,活动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
更多推荐
发布评论