由于AsyncTask的onPostExecute在UIthread上运行,因此应该可以在其中添加PopupMenu。但是当我这样做时,我收到一个编译器错误,我不知道如何修复:
The constructor PopupMenu(My.....dothedirectionTHREAD, View) is undefined
代码行是:
PopupMenu popupMenu = new PopupMenu(this, findViewById(R.id.reset));
我错过了什么?
答案 0 :(得分:0)
this
指的是AsyncTask但你需要Activity上下文。请尝试以下或您的活动类。
PopupMenu popupMenu = new PopupMenu(MainActivity.this, findViewById(R.id.reset));
答案 1 :(得分:0)
在这一行
PopupMenu popupMenu = new PopupMenu(this, findViewById(R.id.reset));
this
指针指的是AsyncTask类,它不能作为Context使用。
假设您的AsyncTask是Activity中的内部类,您应该使用以下内容:
PopupMenu popupMenu = new PopupMenu(MyActivity.this, findViewById(R.id.reset));
答案 2 :(得分:0)
而不是this
,请尝试getApplicationContext
或getBaseContext
。
this
也未引用context
。
答案 3 :(得分:0)
我猜,你必须使用你的appcontext而不是“this”,它会在你的情况下提供线程,而不是上下文。
PopupMenu popupMenu = new PopupMenu(context, findViewById(R.id.reset));
https://developer.android.com/reference/android/widget/PopupMenu.html