如何在android中使用计数器中的共享首选项?

时间:2016-02-16 10:14:24

标签: android sharedpreferences counter

对不起因为我的3个简单问题,但我需要你的帮助。我希望在我的应用中有一个计数器(使用shared preference),如下所示:

  • 首先,有2个按钮STARTRESET。如果是RESET 点击,计数器从0开始。 此外,如果单击START,则计数器将从共享首选项数据开始。
  • 开始计算
  • 最后一次,我想在分享偏好中保存计数器。 (但我不知道将它保存在BACK btn或CLICK btn中更好)

我的问题在于共享偏好部分。请帮帮我怎么做?非常感谢!

编辑:这是我的代码

public class CountActivity extends Activity {
private Button click;
private int count,savedCount;
private String count_text;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.counting);

    click= (Button) findViewById(R.id.vow_counting);
    final Typeface typeface = Typeface.createFromAsset(getAssets(),"fonts/Far_Homa.ttf");

    final SharedPreferences sharedPreferences=getSharedPreferences("counters", Context.MODE_PRIVATE);
    final SharedPreferences.Editor editor=sharedPreferences.edit();

    AlertDialog.Builder fBuilder=new AlertDialog.Builder(VowCountActivity.this);

    fBuilder.setMessage("please choose");
    fBuilder.setCancelable(false);

    fBuilder.setPositiveButton("start from beging", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialogInterface, int i) {
            count = sharedPreferences.getInt("counter", 0);

            click.setText("0");
            click.setTypeface(Typeface.createFromAsset(getAssets(),"fonts/Far_Homa.ttf"));
            dialogInterface.cancel();
        }
    });

    fBuilder.setNegativeButton("countinue", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialogInterface, int i) {
            count = sharedPreferences.getInt("counter",savedCount);

            editor.putInt("counter",savedCount).commit();
            dialogInterface.cancel();
        }
    });

    fBuilder.show();



    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           count++;
           count_text=Integer.toString(count);
           click.setText(count_text);
           click.setTypeface(typeface);
           savedCount = sharedPreferences.getInt("savedCounter", count);
           vibrate(500);
        }
    });
}


// vibrate
public void vibrate(int duration)  {
    Vibrator vibs = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    vibs.vibrate(duration);
}

5 个答案:

答案 0 :(得分:2)

要获得开始按钮的值,您可以定义此功能并具有共享首选项的值

public static int getIntPreferences(String key) {
    SharedPreferences settings = context.getSharedPreferences(SP_FILE_NAME, 0);
    return settings.getInt(key, 0);
}

现在要重置共享首选项值,您可以使用以下功能

public static void updatePreferences(String key, int value) {
    SharedPreferences settings = context.getSharedPreferences(SP_FILE_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putInt(key, value);
    editor.commit();

}

答案 1 :(得分:1)

使用

        SharedPreferences preferences = getSharedPreferences("PROFILE", Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = preferences.edit();
        edit.putString("yourPreferenceName", yourPreferenceObject);
        edit.commit();

用于保存偏好

       SharedPreferences preferences = this.getSharedPreferences("PROFILE", Context.MODE_PRIVATE);
       String string = preferences.getString("yourPreferenceName", "defaultReturn");

用于接收您的sharedPreferences .get和.put,返回类型

答案 2 :(得分:1)

试试这个:

SharedPreferences preferences = getSharedPreferences("counterStat", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = preferences.edit();

             btnStart.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                int counter = preferences.getInt("counter", 0);
             // counter = counter + 1;  start counting  
                edit.putInt("counter", counter).commit();
               }
             });

            btnReset.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {   
              edit.putInt("counter", 0).commit();
             }
            });

对话:

  int counter = preferences.getInt("counter", 0);
  edit.putInt("savedCounter", counter).commit();

取消对话:

 int counter = preferences.getInt("counter", 0);
 edit.putInt("savedCounter", counter).commit();
 edit.putInt("counter", 0).commit();

然后你可以使用:int savedCounter = preferences.getInt(" savedCounter",0);

答案 3 :(得分:1)

  

以下是如何向SharedPrefs添加条目并保存到磁盘。

SharedPreferences settings = getSharedPreferences("my_prefs", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("name", "Adam");
editor.commit();
  

以下是如何从SharedPrefs中读取保存的值。

SharedPreferences settings = getSharedPreferences("my_prefs", 0);
String name = settings.getString("name", null);

答案 4 :(得分:0)

你应该使用这个代码,istear of yourrsL

public class CountActivity extends Activity {
private Button click;
private int count,savedCount;
private String count_text;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.counting);

    click= (Button) findViewById(R.id.vow_counting);
    final Typeface typeface = Typeface.createFromAsset(getAssets(),"fonts/Far_Homa.ttf");

    final SharedPreferences sharedPreferences=getSharedPreferences("counters", Context.MODE_PRIVATE);
    final SharedPreferences.Editor editor=sharedPreferences.edit();

    AlertDialog.Builder fBuilder=new AlertDialog.Builder(VowCountActivity.this);

    fBuilder.setMessage("choose");
    fBuilder.setCancelable(false);

    fBuilder.setPositiveButton(firstا", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialogInterface, int i) {
            count =0;
            savedCount=0;
            click.setText("0");
            click.setTypeface(Typeface.createFromAsset(getAssets(),"fonts/Far_Homa.ttf"));
            dialogInterface.cancel();
        }
    });

    fBuilder.setNegativeButton("countinue", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialogInterface, int i) {
            count = sharedPreferences.getInt("counter",savedCount);
            count_text=Integer.toString(count);
            click.setText(count_text);
            click.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/Far_Homa.ttf"));
            dialogInterface.cancel();
        }
    });

    fBuilder.show();



    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           count++;
           savedCount=count;
           count_text=Integer.toString(count);
           click.setText(count_text);
           click.setTypeface(typeface);
           editor.putInt("counter",savedCount).commit();
           savedCount = sharedPreferences.getInt("savedCounter", count);

        }
    });
}