2016-02-16 29 views
1

对不起,因为我的3个简单问题,但我需要你的帮助。我想有一个计数器(使用shared preference)在我的应用程序是这样的:如何在Android中使用共享偏好计数器?

  • 在第一,有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); 
} 
+0

你能告诉我一个例子,你做了什么......我上投...好多人会下来-vote,如果你不显示你所做的..... –

+0

非常感谢所有帮助。我阅读所有答案,并做下面的事情。现在我有两个问题: –

+0

1-我怎样才能在SP中保存“count”,并在COUNTENTUE btn中继续? –

回答

0

您应使用此代码,yoursL

的istear
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); 

     } 
    }); 
} 
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 不用彷徨和。把返回类型为

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

试试这个:

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);任何地方

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);