2016-09-02 24 views
0

私はjavaを初めて使用しています。私はユーザーがボタンを持っているときに上がるカウンターを作った。私はそれがどこに残ったのint値で開始するアプリをしたい。私はSharedPreferenceが行く方法だと知っていますが、私はそれをどのように使用するか分かりません。私はSharedPreferenceのどこに置くべきかわからない。ありがとうございました。Int(共有設定)の値を保存

public class MainActivity extends AppCompatActivity { 
Button button; 
int count = 1; 
TextView text; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button = (Button) findViewById(R.id.button); 
    text = (TextView) findViewById(R.id.textView); 

    button.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View view) { 
      count++; 
      text.setText(String.valueOf(count)); 
     return false; 
     } 
    }); 

} 

}

答えて

0

あなたonCreate()方法

final String key = "somekey"; 
count = getValue(key); //get value from sharedPreference 
button = (Button) findViewById(R.id.button); 
text = (TextView) findViewById(R.id.textView); 
text.setText(String.valueOf(count)); // set it first 
button.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View view) { 
     count++; 
     saveValue(key,count); 
     text.setText(String.valueOf(count)); 
     return false; 
    } 
}); 
0

に追加いくつかのコードが

を回してみ

public int getValue(String key) { 
     SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
     int value = sharedPref.getInt(key, 0); 
     return value; 
} 
public void saveValue(String key, int value) { 
     SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     editor.putInt(key, value); 
     editor.commit(); 
} 

あなたの活動に次の関数を追加します。これがまたは動作しない場合がありますので、

static int count = 1; 

に210

私も多少のJava noobieです。

0

あなたは、このようにそれを行う活性を破壊し、あなたがそれを作成するときSharedPreferenceから値を読んだときSharedPreferenceにcountを保存することができます:

public class MainActivity extends AppCompatActivity { 
    Button button; 
    int count = 1; 
    TextView text; 
    SharedPreferences sh; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button = (Button) findViewById(R.id.button); 
     text = (TextView) findViewById(R.id.textView); 

     sh = getSharedPreferences("sh_name", MODE_PRIVATE); 
     count = sh.getInt("count", 1); 

     button.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View view) { 
       count++; 
       text.setText(String.valueOf(count)); 
       return false; 
      } 
     }); 

    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     sh.edit().putInt("count", count).apply(); 
    } 
} 
関連する問題