2013-11-21 24 views
9

Bir AbstractAccountAuthenticator kullanıyorum ve uygulamanız için tek hesap açmak istiyorum. Bu yüzden kullanıcı bu uygulama için yeni bir hesap eklemeyi seçtiğinde bir mesaj sormak istiyorum. Diğer uygulamaların mesaj için bir tost kullandığını gördüm, ancak bazı nedenlerden dolayı benimki görüntülenmiyor.android sdk istemi tost mesajı

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

herhangi bir fikir neden:

böyle iletisini görüntüler? AbstractAccountAuthenticator'dan addAccount() yöntemindeki hesap sayısını kontrol ediyorum.

+0

Eğer 'addAccount()' denilen ve 'aslında'> 0' 'accounts.size() olduğunu ediliyor doğruladınız mı? – Kirk

+0

Evet, görüntülenen iletinin dışında her şey yolunda – Alex

cevap

11

Aynısını arıyorum. Aşağıdaki cevaplar bana yardımcı oldu: 1, 2.

kodunuzu örneği kullanarak:

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

İşleyicinin addAccount yönteminin dışında tanımlandığından emin olun, aksi halde bir hata alırsınız (yaptığım gibi). Sadece herkese bir FYI. – pkramaric

+0

Bu yazı için çok teşekkür ederim. Günümü kurtardım. – Henrik