0

Я новичок в программировании, и мне нужно сохранить более 1 ints в SharedPreferences. Я делаю счетчик, и я хочу просто сохранить значения всех int в моем коде. Как мне это сделать? Если возможно, вы можете изменить свой код с помощью общих настроек. БлагодаряСохранить ints в SharedPreferences

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 ints? – DroidGalaxy

+0

Просто сделайте эти два метода частью своей основной деятельности. С вашего MainActivity вы можете вызвать setInt (это, «k», k); или k = getInt ("k", -1); – pscuderi

+0

Прошу прощения. Я пытался это сделать, но не мог заставить его работать. Можете ли вы изменить мой код, пожалуйста, чтобы я мог там, где он должен быть? благодаря – DroidGalaxy

0

@DroidGalaxy В SharedPreferences вы можете сохранить за один раз значение. Чтобы использовать общие настройки, вы должны вызвать метод getSharedPreferences(), который возвращает экземпляр SharedPreference, указывающий на файл, который содержит значения предпочтений. Здесь указание экземпляра означает, что оно может извлекать последнее значение, которое можно сохранить в этом. Для ПРИМЕР-

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

, но в следующий раз -

Если вы меняете INT varaiable = 10 TO Int varaiable = 20, то он может вернуть INT varaiable = 20.

Смежные вопросы