如何使用共享偏好保存我的按钮状态?

时间:2015-02-26 13:14:20

标签: java android

在我的应用程序中,当用户单击后退时,我会创建一个包含2个按钮的警告对话框。第一个按钮是退出,允许用户退出应用程序。 第二个按钮是5星,允许用户在市场上评价我。 它工作正常。 但问题是,当我杀死应用程序并再次运行它时,此过程重复进行。我希望如果用户之前评价我,我不会再向用户显示5星按钮。 如何在其中保存我的状态按钮? 我知道我必须分享偏好,但是如何?

    int star = 0;
    public void onClick(View v) {
    int id = v.getId();

    if(id == R.id.button1 && stringListCounter <lines.size() - 1) {
        stringListCounter++;
    } else if (id == R.id.button2 && stringListCounter > 0) {
        stringListCounter--;
    }
    txtQuestion.setText(lines.get(stringListCounter));
}
public void onBackPressed() {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(QuizActivity.this);

    alertDialog.setTitle("please rate us");

    alertDialog.setPositiveButton("5star", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Intent browserIntent = new Intent(
                    Intent.ACTION_EDIT,
                    Uri.parse("http://cafebazaar.ir/app/my package name/?l=fa"));
            startActivity(browserIntent);
            star ++;


        }
    });


    alertDialog.setNegativeButton("exit", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Intent intent1 = new Intent(Intent.ACTION_MAIN);
            intent1.addCategory(Intent.CATEGORY_HOME);
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent1);

        }
    });
    alertDialog.show();



}

这里我的星星值是0.当用户给我评价时,星星的值变为1。一世 想要将我的星级值保存为1,此过程不会再次重复。 请帮忙

2 个答案:

答案 0 :(得分:0)

首选保存首选项

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("KeyValue", newHighScore);
editor.commit();

从共享偏好设置中阅读

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger("KeyValue");

获得优惠后轻松检查条件

答案 1 :(得分:0)

你可以在共​​享首选项中创建一个方法,这将为你的应用程序状态提供意味着当用户点击5开始时你需要设置应用程序状态1.下次在调用此方法之前

alertDialog.setPositiveButton("5star", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        Intent browserIntent = new Intent(
                Intent.ACTION_EDIT,
                Uri.parse("http://cafebazaar.ir/app/my package name/?l=fa"));
        startActivity(browserIntent);
        star ++;


    }
});

如果条件适用并在共享首选项中检查应用程序的状态意味着如果状态为1则不允许执行此功能,否则允许。