我有两个活动,活动1和活动2。在活动2中,我想从活动1按钮中使用某些东西
protected void onNext() {
AuthType authType = getSelectedAuthType();
if (authType == AuthType.XOAUTH2) {
Globals.getOAuth2TokenProvider().authorizeAPI(mAccount.getEmail(), this,
new OAuth2TokenProvider.OAuth2TokenProviderAuthCallback() {
@Override
public void success() {
updateAccountSettings("");
AccountSetupCheckSettings.actionCheckSettings(
AccountSetupIncoming.this, mAccount, CheckDirection.INCOMING);
}
@Override
public void failure(AuthorizationException e) {
AccountSetupIncoming.this.failure(e);
}
});
return;
}
updateAccountSettings(mPasswordView.getText().toString());
AccountSetupCheckSettings.actionCheckSettings(this, mAccount, CheckDirection.INCOMING);
}
此代码在活动2中,我想通过单击活动1来使用此代码。
我正在处理电子邮件应用程序,以上代码将用于登录google xoauth2,
下面是活动1中的代码,如果用户单击它,它将用于gmail xoauth,将转到活动2并使用上面的代码
private void onNext() {
if (mOAuth2CheckBox.isChecked()) {
// Auto-setup doesn't support client certificates.
activity2();
return;
}
答案 0 :(得分:0)
1: 如果您想跳到另一个活动并运行您提到的代码,则可以在第二个活动的意图中传递一个标志。 例如
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtran("EXECUTE_CODE",true);
startActivity(intent);
在创建第二个活动时,您还可以检查该标志是否为真。
bool executeCode = getIntent().getExtras().getBoolean("EXECUTE_CODE");
if(executeCode){
RunCodeYouWantToExecute()
}
2:如果要在firstActivity中返回结果,则可以使用
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtran("EXECUTE_CODE",true);
startActivityForResults(intent,123)
以及您的secondActivity
@Override
public void success() {
updateAccountSettings("");
AccountSetupCheckSettings.actionCheckSettings(
AccountSetupIncoming.this, mAccount,
CheckDirection.INCOMING);
setResults(RESULTS_OK);
finish();
}
在您的首次活动中,您可以通过活动的替代方法
获得结果@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent
data)
{
if(requestCode ==123 && resuldCode==RESULT_OK){
//do taks
}
}