【问题标题】:Home is not an Enclosing class家不是封闭类
【发布时间】:2018-01-05 22:25:22
【问题描述】:

我正在尝试将图像按钮放在另一个类中,但是...我从未使用过类,所以我不完全知道我在做什么。它说“家”不是封闭类。这是什么意思?我该如何防止这种情况?这也将有助于将来使主要活动代码更容易在类中阅读,而不是将它们全部放在一个文件中。

import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.widget.ImageButton;
import android.widget.PopupMenu;

public class Options_menu implements View.OnClickListener {

private ImageButton options_menu;
private WebView webView;



@Override
public void onClick(View view) {


    options_menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PopupMenu popup = new PopupMenu(Home.this, options_menu);
            popup.getMenuInflater().inflate(R.menu.popup_menu, 
 popup.getMenu());
            popup.setOnMenuItemClickListener(new 
 PopupMenu.OnMenuItemClickListener() {
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()) {
                        case R.id.back:
                            if (webView.canGoBack()) {
                                webView.goBack();
                            } else {
                                webView.reload();
                            }
                            return true;
                        case R.id.forward:
                            if (webView.canGoForward()) {
                                webView.goForward();
                            } else {
                                webView.reload();
                            }
                            return true;
                        case R.id.refresh:
                            webView.reload();
                        default:
                            return false;
                    }
                }
            });
            popup.show();
        }
    });
}
}

【问题讨论】:

    标签: android class imagebutton


    【解决方案1】:

    错误在PopupMenu popup = new PopupMenu(Home.this, options_menu); 行中。您只能从 Activity class Home 内部执行此操作。 PopupMenu 类构造函数 PopupMenu (Context context, View anchor) 需要传入上下文。当您从 Activity class Home 内部使用 PopupMenu popup = new PopupMenu(Home.this, options_menu); 时,Home.this 作为上下文传递,但从外部则不会。如果要在此处创建 PopupMenu,则需要将上下文传递给您的班级

    【讨论】:

      猜你喜欢
      • 2016-05-14
      • 1970-01-01
      • 2020-05-06
      • 2011-07-05
      • 2013-12-13
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      相关资源
      最近更新 更多