PDA

View Full Version : راهنمایی برای ذخیره مقدار TextView در پروژه counter



ehsanh22
جمعه 04 دی 1394, 10:42 صبح
سلام دوستان


دوتا سوال دارم ،


سوال اول : من برای پروژه شمارنده میخوام مقداری که با هر بار کلیک اضافه میشه ذخیره بشه و سری بعد که برنامه باز میشه عددش صفر نشه . تحقیق زیادی کردم باید از SharedPerfences استفاده کنم ، ولی با کلی سرچ در اینجا و stackoverflow و دیگر سایت ها نتونستم که این مقدار رو ذخیره کنم . اگر امکانش هست بگید چه تغییری توی این کدها بدم که مقدار شمارنده ذخیره بشه و با بسته شدن برنامه صفر نشه.


سوال دوم : یه دکمه هم تعریف کردم برای صفر کردن شمارنده ، نوشته شمارنده به صفر تغییر داده میشه ولی با کلیک مجدد روی Counter عدد قبلی ذخیره شده است و چگونه باید تعریف کرد وقتی کلیک کردیم روی دکمه ریست شمارنده واقعا صفر بشه و از اول بشماره .


این هم کد اکتیویتی من :

public class Counter extends Activity {

public int counter;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.counter);


final TextView txtCaption = (TextView) findViewById(R.id.txtCaption);
final TextView btnChangeValue = (Button) findViewById(R.id.btnChangeValue);
final TextView btnReset = (Button) findViewById(R.id.btnReset);






for (int i = 0; i < 2; i++) {


txtCaption.setText("I is : " + i);
}


txtCaption.setTextColor(Color.parseColor("#F7FF00"));
txtCaption.setBackgroundColor(Color.parseColor("#648A9B"));
txtCaption.setTextSize(40);
txtCaption.setVisibility(View.VISIBLE);


btnChangeValue.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View arg0) {


Log.i("LOG", "LOG Clicked Txt");


counter++;
txtCaption.setText("conter is " + counter);


}
});


btnReset.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View arg0) {


txtCaption.setText("0");
}
});


}




}

msroid
شنبه 05 دی 1394, 02:15 صبح
سلام
همونجور که خودتم اشاره کردی میتونی از SharedPreferences استفاده کنی:


SharedPreferences sharedData = getSharedPreferences("InjaYeEsmBeheshBede", 0);
SharedPreferences.Editor editor = sharedData.edit();
editor.putInt("counter", counter);
editor.commit();

/*
*in code ro tabdil kon b ye method va har bar tuye btnChangeValue bad az
*counter++ sedash bezan
*/

// baraye khundane meghdar
SharedPreferences sharedData = getSharedPreferences("EsmeGhabliRoInjaBayadBezari", 0);
int counterValue = sharedData.getInt("counter", X); // b jaye X bayad ye meghdare int bezari k age natunest meghdare asli ro bekhune b jash X ro bargardune.

// baraye reset kardan
// az hamun code aval estefade mikoni faghat b jaye meghdar counter, 0 ro bezar tu sharedPreferences.