我正在尝试将上下文从一个类传递到另一个类。
致电课程:
mForgotPatternButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new ListOfAccounts(v.getContext());
}
});
被叫类:
public ListOfAccounts(Context context) {
super(context);
mAccounts = new ArrayList<String>();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Select the account");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(),R.layout.list_all_accounts, mAccounts);
AccountManager.get(context).addOnAccountsUpdatedListener(ListOfAccounts.this, null, true);
builder.setAdapter(adapter, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialogInterface, int item) {
mCallback.forgotPattern(true);
return;
}
});
builder.create().show();
}
我没有传递“v.getContext()”,而是试图给出“getContext()”。但在所有情况下,我得到以下异常
05-24 16:11:27.087: ERROR/AndroidRuntime(4429): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
请为此提供解决方案。
在这方面的任何帮助都将受到赞赏。
最诚挚的问候, 罗尼
答案 0 :(得分:1)
尝试传递YourActivityName.this
而不是getContext()
。希望这会有所帮助。
答案 1 :(得分:1)
有时getContext()甚至getApplicationContext()会导致此异常。尝试传递
this
或
YourActivity.this
Activity继承自Context,所以它可以工作,虽然我真的不知道为什么要获取上下文,因为它应该完成它不会起作用,给出了奇怪的异常。