是否可以使用选项菜单项打开对话框窗口? 这就是我得到的:
public class main extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int score;
SharedPreferences stats = getSharedPreferences("TRHprefs", MODE_WORLD_READABLE);
score = stats.getInt("score", 0);
switch (item.getItemId()) {
case R.id.score:
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.options_menu);
dialog.setTitle("Hero Stats");
TextView b10 = (TextView) dialog.findViewById(R.id.tolevel);
b10.setText("Score: " + score);
dialog.setCancelable(true);
dialog.show();
break;
case R.id.options:
//Options
break;
case R.id.quit:
//Quit
break;
}
return true;
}
}
当我选择得分选项按钮时,应用程序强制关闭。有什么想法吗?
答案 0 :(得分:1)
你应该包含logcat输出,以便更容易确定出现了什么问题,但是盯着我期望的代码:
options_menu.xml
中存在错误,而行TextView b10 = (TextView) dialog.findViewById(R.id.tolevel);
返回b10
的空值。如果发生这种情况,下一行将导致NullPointerException,应用程序将强制关闭。Dialog dialog = new Dialog(mContext);
失败,因为您传入的是ApplicationContext而不是Activity。尝试使用Dialog dialog = new Dialog(this);
。