我有两个活动,活动A有一个textview和一个按钮,通过按下按钮,我将转到活动B.在活动B中,包含editText和一个按钮,编辑editText然后单击活动B中的按钮然后它将返回到活动a并在TextView中显示文本。
create table SELF_REL_TAB
(
ID number not null,
PARENT_ID number,
STATUS varchar2(1)
);
comment on column SELF_REL_TAB.ID
is 'Primary key';
comment on column SELF_REL_TAB.PARENT_ID
is 'Self reference';
comment on column SELF_REL_TAB.STATUS
is 'Status A(ctive) H(istorical)';
alter table SELF_REL_TAB
add constraint SRT_PK primary key (ID);
alter table SELF_REL_TAB
add constraint SRT_SRT_FK foreign key (PARENT_ID)
references SELF_REL_TAB (ID);
alter table SELF_REL_TAB
add constraint srt_status_chk
check (STATUS IN ('A','H'));
INSERT INTO SELF_REL_TAB VALUES (1, NULL, 'A');
INSERT INTO SELF_REL_TAB VALUES (2, 1, 'A');
INSERT INTO SELF_REL_TAB VALUES (3, 1, 'H');
然而,在按下活动B中的按钮后,我将获得nullpointerexception。我不想将B更改为片段。
答案 0 :(得分:0)
如果您有两项活动,则需要从A中的B活动接收值。您可以使用startActivityForResult()
并在B中发送您需要的值。
您可以在这里学习如何使用它。
https://developer.android.com/training/basics/intents/result.html?hl=es
答案 1 :(得分:0)
你想做这样的事情
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();
}
});
}
阅读活动的startActivityForResult方法的完整详细信息