Java 试图通过视图v上的静态上下文打印对话框
我正试图通过视图v上的静态上下文打印一个对话框。我遇到了无法从静态上下文引用的错误。我也不确定如何将视图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
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’不要使用静态上下文,这是获取泄漏的一种简单方法。如何将上下文从一个非静态方法传输到另一个方法?或者我应该在没有静态方法的情况下编程。谢谢