2013-11-21 17 views
9

Tôi đang sử dụng Trình xác thực AbstractAccountAuthenticator và tôi muốn một tài khoản cho ứng dụng của mình. Vì vậy, khi người dùng chọn thêm tài khoản mới cho ứng dụng này, tôi muốn nhắc nhở một tin nhắn. Tôi thấy các ứng dụng khác sử dụng một bánh mì nướng cho tin nhắn, nhưng vì một số lý do tôi không được hiển thị.thông báo nhắc nhở sdk android sdk trong cài đặt tài khoản

tôi hiển thị thông điệp như thế này:

public Bundle addAccount() { 
    if (accounts.size() > 0) { 
     Toast.makeText(context, R.string.MSG_ONLY_ONE_ACCOUNT_IS_SUPPORTED, Toast.LENGTH_LONG).show(); 
     return null; 
    } 
} 

Bất cứ ý tưởng tại sao? Tôi đang kiểm tra số tài khoản trong phương thức addAccount() từ AbstractAccountAuthenticator.

+0

Bạn đã xác nhận rằng 'addAccount()' đã được gọi và rằng 'accounts.size()' thực sự là '> 0'? – Kirk

+0

Có, mọi thứ đều ổn, ngoại trừ thông báo không được hiển thị – Alex

Trả lời

11

Tôi đã nhìn xung quanh cho tương tự. Các câu trả lời sau đây đã giúp tôi: 1, 2.

Sử dụng ví dụ mã của bạn:

private final Handler handler = new Handler(); 

public Bundle addAccount(...) { 
    if (accounts.size() > 0) { 
     final Bundle bundle = new Bundle(); 
     final String message = 
        mContext.getString(R.string.MSG_ONLY_ONE_ACCOUNT_IS_SUPPORTED); 
     bundle.putInt(AccountManager.KEY_ERROR_CODE, 1); 
     bundle.putString(AccountManager.KEY_ERROR_MESSAGE, message); 

     handler.post(new Runnable() { 
      @Override 
      public void run() { 
       Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     return bundle; 
    } 
} 
+2

Đảm bảo Trình xử lý được xác định bên ngoài phương thức addAccount nếu không bạn sẽ gặp lỗi (như tôi đã làm). Chỉ là một FYI cho tất cả mọi người. – pkramaric

+0

Cảm ơn bạn rất nhiều vì bài đăng này. Đã lưu ngày của tôi. – Henrik

Các vấn đề liên quan