3 回答
TA贡献1799条经验 获得超8个赞
您的问题是由错误的 Java 语法引起的。你不能直接嵌套在类体中编写可执行代码,它不会编译!
为了使其工作,您可以将代码 ( if(!agreed) {...}
)括在大括号中,{if(!agreed){...}}
这将使其成为初始化程序。此代码将正确编译,但在您的情况下,您仍然可能遇到问题..
由于您在 Android 上,运行初始化代码的标准方法是在内部onCreate()
回调方法中编写,这Activity
是创建新方法时运行的第一个方法。
TA贡献1831条经验 获得超9个赞
你不能在那里添加你的代码,这是非法的(至少,没有声明它的范围)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
if(! sharedPreferences.getBoolean("agreed", false)) {
new AlertDialog.Builder(this, R.style.AlertDialog)
.setIcon(R.drawable.ic_error_black_24dp)
.setTitle(R.string.eula_title)
.setMessage(R.string.eula)
.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("agreed", true);
editor.apply();
dialog.dismiss();
}
})
.setNegativeButton(R.string.decline, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
finish();
}
})
.show();
}
...
}
添加回答
举报