Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 共享参考帮助。如何保存int?_Java_Android_Sharedpreferences_Android Preferences - Fatal编程技术网

Java 共享参考帮助。如何保存int?

Java 共享参考帮助。如何保存int?,java,android,sharedpreferences,android-preferences,Java,Android,Sharedpreferences,Android Preferences,我一辈子都不知道如何保存int。我只想将leftCounter保存到一个文件中,并在重新启动代码时检索它 public class SalesTrack extends Activity { byte leftCounter = 0; byte centerCounter = 0; byte rightCounter = 0; int total; int x, y, z; public static final String PREFS = "data"

我一辈子都不知道如何保存int。我只想将
leftCounter
保存到一个文件中,并在重新启动代码时检索它

public class SalesTrack extends Activity {

   byte leftCounter = 0;
   byte centerCounter = 0;
   byte rightCounter = 0;
   int total;
   int x, y, z;

   public static final String PREFS = "data";

   TextView counterAAL, counterUPG, counterNL, counterTotal;

   private final String LEFTY = "6";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_sales_track);

       counterAAL = (TextView) findViewById(R.id.left_number);
       counterUPG = (TextView) findViewById(R.id.center_number);
       counterNL = (TextView) findViewById(R.id.right_number);
       counterTotal = (TextView) findViewById(R.id.total);

       SharedPreferences sharedPref = this.getSharedPreferences(LEFTY, 0);
       sharedPref.getInt("data", leftCounter);
       counterAAL.setText(PREFS);
   }

   public void LeftInc(View v) {
       leftCounter++;
       counterAAL.setText("" + leftCounter);
       Refresh();
   }

   public void LeftDec(View v) {
       leftCounter--;
       counterAAL.setText("" + leftCounter);
       Refresh();
   }

   public void CenterInc(View v) {
       centerCounter++;
       counterUPG.setText("" + centerCounter);
       Refresh();
   }

   public void CenterDec(View v) {
       centerCounter--;
       counterUPG.setText("" + centerCounter);
       Refresh();
   }

   public void RightInc(View v) {
       rightCounter++;
       counterNL.setText("" + rightCounter);
       Refresh();
   }

   public void RightDec(View v) {
       rightCounter--;
       counterNL.setText("" + rightCounter);
       Refresh();
   }

   // Refresh Total after every click.
   public void Refresh() {
       x = leftCounter * 10;
       y = centerCounter * 20;
       z = rightCounter * 35;
       total = x + y + z;
       counterTotal.setText("" + total);

       SharedPreferences sharedPref = getSharedPreferences(PREFS, 0);
       SharedPreferences.Editor editor = sharedPref.edit();
       editor.putInt("data", leftCounter);
       editor.commit();
   }
}

因此,您从文件中获取数据,但它被检测为
字符串

您可以使用parse函数将
字符串
转换为
整数

int counter = Integer.parseInt(stringvalue);

你的代码有错误

// SharedPreferences sharedPref = getSharedPreferences(PREFS, 0); (This line is wrong)
      SharedPreferences sharedPref = getSharedPreferences(LEFTY, 0);
      SharedPreferences.Editor editor = sharedPref.edit();
      editor.putInt("data", leftCounter);
      editor.commit();

您可以使用两个不同的名称获得首选项
LEFTY
PREFS
。鉴于这些名称,我认为您需要更改
onCreate中的以下行

SharedPreferences sharedPref = this.getSharedPreferences(LEFTY, 0);

像这样改变

SharedPreferences sharedPref = = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("data", leftCounter);
editor.commit();

您正在名为
PREFS
的首选项中保存
数据
,并通过首选项名称
LEFTY

尝试将首选项名称从
LEFTY
更改为
onCreate()下的
PREFS


在SharedReference中存储int有什么问题?我的建议是将int转换成字符串并存储。你尝试过吗???
SharedPreferences sharedPref = getSharedPreferences(LEFTY, 0);
SharedPreferences.Editor editor = sharedPref .edit();               
editor.putInt("data", leftCounter);
editor.commit();
SharedPreferences sharedPref = = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("data", leftCounter);
editor.commit();
protected void onCreate(Bundle savedInstanceState) 
{
...
SharedPreferences sharedPref = this.getSharedPreferences(PREFS, 0);
}