Ven*_*nky 5 android-asynctask android-optionsmenu android-fragmentactivity
我需要根据API调用响应启用和禁用菜单项,并且每次菜单出现时都必须调用它.
我需要asynctask因为我必须显示进度条
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
handleMenuItems(menu)
}
private void handleMenuItems(menu)
{
new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params) {
//API call
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (progressDialog != null)
progressDialog.hide();
//necessary menu items are enabled and disabled
super.onPrepareOptionsMenu(menu);
}
@Override
protected void onPreExecute() {
if (progressDialog != null){
progressDialog.setMessage("Checking");
progressDialog.show();
}
super.onPreExecute();
}
}.execute();
}
Run Code Online (Sandbox Code Playgroud)
每当我触摸选项菜单时,都会调用onPrepareOptionsMenu并且不显示选项菜单,然后当我再次按下它时,不会调用onPrepareOptionsMenu并显示选项菜单.
每当我触摸选项菜单时,我希望每次都调用api并显示菜单.
您不应该显示和隐藏进度对话框OnPrepareOptionsMenu
注释掉进度对话框编码,其余代码都可以并且按您的预期工作
笔记:
您已调用super.OnPrepareOptionsMenu(OnPostExecuteUI 线程)
由于不需要进度条,请勿删除 AsyncTask,否则应用程序会崩溃
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |