Home不是Enclosing课程

时间:2018-01-05 22:25:23

标签: android class imagebutton

我试图把Image按钮放在另一个班级但是...我从未使用过课程,所以我不知道我在做什么。它说" Home"不是封闭的类。这是什么意思?我该如何防止这种情况?这也有助于将来使主要活动代码更容易在类中读取,而不是将它们全部放在一个文件中。

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();
        }
    });
}
}

1 个答案:

答案 0 :(得分:1)

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