Java 试图通过视图v上的静态上下文打印对话框

Java 试图通过视图v上的静态上下文打印对话框,java,android,android-popupwindow,Java,Android,Android Popupwindow,我正试图通过视图v上的静态上下文打印一个对话框。我遇到了无法从静态上下文引用的错误。我也不确定如何将视图v引入函数。谢谢你的帮助 public class QuizActivity extends Activity { private InterstitialAd interstitial; private static int SIZE = 30; public static int location; private int counter = 0; public static int am

我正试图通过视图v上的静态上下文打印一个对话框。我遇到了无法从静态上下文引用的错误。我也不确定如何将视图v引入函数。谢谢你的帮助

public class QuizActivity extends Activity {
private InterstitialAd interstitial;
private static int SIZE = 30;
public static int location;
private int counter = 0;
public static int amountCorrect = 0;
private static float percentCorrect = 0;
private static TextView percentText;

public static int[] scores = new int[30];

private int lastPosition = 0;

// initialize buttons
public static ImageButton buttons[] = new ImageButton[SIZE];

// array names
public static String[] names = {...
};

// array images
public static int[] images = { ... };

private GridView gridview;
private static ImageAdapter imageAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    percentText = (TextView) findViewById(R.id.percentText);


    imageAdapter = new ImageAdapter(this, SIZE);
    gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(imageAdapter);

    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            //Toast.makeText(QuizActivity.this, "" + position, Toast.LENGTH_SHORT).show();
            // PopUpActivity

            Intent intent = new Intent(QuizActivity.this, PopUpWindow.class);
            intent.putExtra("position", position);
            intent.putExtra("images", images);
            intent.putExtra("names", names);

            startActivity(intent);



        }
    });





}



public static void dimImage(int location){
    imageAdapter.dimImage(location);
    imageAdapter.notifyDataSetChanged();
}
public static void updateScore(){
    amountCorrect += 1;
    percentCorrect = amountCorrect*100f/SIZE;
    percentText.setText("Percent Correct: " + String.format("%.2f", percentCorrect) + "%");
    if(amountCorrect==SIZE) {
        //QuizActivity quizActivity = new QuizActivity();
        //quizActivity.printWin();
    }

    QuizActivity.printWin(); // wish to invoke the method from here
}

public static void printWin(){


    PopupMenu popup = new PopupMenu(QuizActivity.this, v); // here is where I am stuck
    popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());

    //registering popup with OnMenuItemClickListener
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            Toast.makeText(QuizActivity.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
            return true;
        }
    });

    popup.show();//showing popup menu

}


}

为什么不将上下文传递给您的视图呢。新ViewcontextDon’不要使用静态上下文,这是获取泄漏的一种简单方法。如何将上下文从一个非静态方法传输到另一个方法?或者我应该在没有静态方法的情况下编程。谢谢