0

プログラミングが初めてで、SharedPreferencesに複数のintを保存する必要があります。私はカウンタを作っています。私はすべてのintの値を自分のコードに保存したいだけです。どうすればいい?可能であれば、共有環境設定で自分のコードを変更できますか? ありがとうSharedPreferencesにintを保存する

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

int i=0; 
int j=0; 
int k=0; 

TextView x= (TextView) findViewById(R.id.textView); 
TextView y = (TextView) findViewById(R.id.textView2); 
TextView z = (TextView) findViewById(R.id.textView3); 

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


    Button a = (Button) findViewById(R.id.b1); 
    a.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      i++; 
      x.setText(String.valueOf(i)); 
     } 
    }); 


    Button b = (Button) findViewById(R.id.b2); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      j++; 
      y.setText(String.valueOf(j)); 
     } 
    }); 

    Button c = (Button) findViewById(R.id.b3); 
    c.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      k++; 
      z.setText(String.valueOf(k)); 
     } 
    }); 


} 
} 

答えて

0

これはトリックを行う必要があります。

private static void setInt(Context context, String name, int i) { 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putInt(name, i); 
    editor.apply(); 
} 

private static int getInt(Context context, String name, int default) { 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
    return preferences.getInt(name, default); 
} 
+0

を返すことができますし、どのように3つのintをすべて保存できますか? – DroidGalaxy

+0

MainActivityの2つのメソッドを作成してください。 MainActivityからsetInt(this、 "k"、k)を呼び出すことができます。またはk = getInt( "k"、-1)。 – pscuderi

+0

すみません。私はそれをやろうとしましたが、それを働かせることはできませんでした。私のコードを編集して、私はそれをどこに置くことができますか?ありがとう – DroidGalaxy

0

@DroidGalaxy SharedPreferencesでは、一度に1つの値を保存できます。共有プリファレンスを使用するには、プリファレンスの値を含むファイルを指すSharedPreferenceインスタンスを返すgetSharedPreferences()メソッドを呼び出す必要があります。 ここでインスタンスポインティングは、これで保存できる最後の値を取得できることを意味します。例 -

   if you can store in your int varaiable = 10, then in next time you get value int varaiable = 10 .  

が、次の時間のために -

あなたは20 = varaiableをintにint型varaiable = 10を変更した場合、それはどこ私はそれを置くだろうint型varaiable = 20

関連する問題