拥有一个Android应用程序,如果用户创建了一个帐户,他们会点击"创建一个帐户"按钮,它将他们带到第二个活动(DriverDetailsActivity)来填写表格。表单完成后,用户将点击" UPDATE"按钮,它将返回到LoginActivity和"创建一个帐户"文字应改为"注册"但它没有用。
我提供的代码不起作用。
LoginActivity:
final Button mRegisterButton = (Button)findViewById(R.id.email_registration_button);
mRegisterButton.setTag(1);
mRegisterButton.setText("Create an Account");
mRegisterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
final int status = (Integer) v.getTag();
if (status == 1) {
Intent intent = new Intent(getBaseContext(), DriverDetailsActivity.class);
startActivity(intent);
mRegisterButton.setText("Register");
}
}
});
DriverDetailsActivity(第二个活动)
// Once completed all fields, user is sent back to DriverLoginActivity
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(DriverDetailsActivity.this, DriverLoginActivity.class);
startActivity(intent);
}
});
知道我怎么能这样做吗?任何帮助将不胜感激。
答案 0 :(得分:2)
我们有startActivityForResult(intent,requestCode)
,而不是startActivity如果您想要参加活动并获得一些结果,则特别使用此方法。
像这样使用:
在活动A中
startActivityForResult(intent,100);
在活动B中,当您完成任务时,您所做的就是
setResult(RESULT_OK);
finish();
在活动A中,您覆盖此方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
//Do your work here
}
}
显然你也可以通过setResult(RESULT_CANCELLED)通知结果不正确。
希望这有帮助。
答案 1 :(得分:0)
为此,您可以使用startActivityForResult()从DriverDetailsActivity获取结果并更新onActivityResult中的文本。
有关详细信息,请查看这些链接
https://developer.android.com/training/basics/intents/result.html
答案 2 :(得分:0)
试试这个
<强> LoginActivity:强>
if( getIntent().getExtras() != null) {
btnOne.setText(getIntent().getStringExtra("BACK"));
}else{
btnOne.setText("Create");
}
btnOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(btnOne.getText().toString().equalsIgnoreCase("Create")){
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}else{
//do registration
}
}
});
DriverDetailsActivity(第二个活动)
btnTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
intent.putExtra("BACK","Register");
startActivity(intent);
}
});