0

私の人生では、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();
   }
}
4

6 に答える 6

2

コードに誤りがあります。

// 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();
于 2013-01-23T06:25:52.693 に答える
0

このように変更します

SharedPreferences sharedPref = = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("data", leftCounter);
editor.commit();
于 2013-01-23T06:34:48.107 に答える
0

data名前付きの内部設定を保存し、PREFS設定名を介してフェッチしていますLEFTY

設定名をからに変更してみLEFTYPREFSくださいonCreate()

protected void onCreate(Bundle savedInstanceState) 
{
...
SharedPreferences sharedPref = this.getSharedPreferences(PREFS, 0);
}
于 2013-01-23T06:35:38.930 に答える
0

2つの異なる名前LEFTYとで設定を取得しPREFSます。名前からすると、次の行を変更したいと思います。onCreate

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

SharedPreferences sharedPref = this.getSharedPreferences(PREFS, 0);
于 2013-01-23T06:30:09.570 に答える
0
SharedPreferences sharedPref = getSharedPreferences(LEFTY, 0);
SharedPreferences.Editor editor = sharedPref .edit();               
editor.putInt("data", leftCounter);
editor.commit();
于 2013-01-23T06:30:22.653 に答える
0

ファイルからデータを取得しますが、次のように検出されStringますか?

Stringparse 関数を使用してに変換できますInteger

int counter = Integer.parseInt(stringvalue);
于 2013-01-23T06:24:11.353 に答える