我想通过AccountPicker.newChooseAccountIntent获得用户的电子邮件ID。我想要检测用户取消AccountPicker对话框

这是一个代码

     private static final int REQUEST_CODE_EMAIL = 1;
     private TextView email = (TextView) findViewById(R.id.email);



     try {
         Intent intent = AccountPicker.newChooseAccountIntent(null, null,
            new String[] { GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE }, false, null, null, null, null);
         startActivityForResult(intent, REQUEST_CODE_EMAIL);
     } catch (ActivityNotFoundException e) {
         // TODO
     }



     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
            String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
            email.setText(accountName);
       }
    }

最佳答案

Activity中也有一个RESULT_CANCELEDRESULT_CANCEL常量。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
       String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
       email.setText(accountName);
    } else if(requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_CANCELED) {
      Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();
    }
}

关于java - 如何检测用户取消AccountPicker对话框Android Eclipse,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24844624/

10-10 18:44