آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوال در باره ی prefences

parsarezaei  11 سال پیش  11 سال پیش
0 0

سلام . من دارم یک برنامه مینویسم که  میخوام یک عدد از ادیت تکست بگیر و  بیاد ببینه که ایا این مقدار از 0 بزرگتر است یا نه اگر بود ذخیره کند و دوباره دفعه ی بعد یک عدد دیگر بگیرد  بیاد با مقداری که قبلا ثبت شده بود مقایسه کند که اگر بزرگتر بود دوباره ذخیره کنه به همین ترتیب تا اخر برای مثال : مثل  ما عدد 5 را وارد میکنیم می بینم که 5 بزرگتر از0 است وبیاد مقدار 5 را ذخیره کنه و دفعه بعدی بیایم مقدار 7 رو بدیم که 7 از 5 بزرگتر است پس 7 رو دخیره کنیم وحالا این بار مقدار 6 رو بدیم که 6 بزرگتر از 7 نیست پس همون مقدار  7 رو ذخیره کند . در واقع میخواستم بدونم  که چه جوری میشه یکه Best Score برای بازی نوشت لطفا راهنمایی کنید مرسی

0 0
پروژه ی 2048Game استاد رو ببینید :) ، این مورد پیاده سازی شده ، درواقع کار شما به این شکل باید انجام بشه ، آخرین مقدار رو بخونه ، با مقدار فعلی مقایسه کنه ، اگه بزرگ تر بود ، ثبت کنه در غیر اینصورت هیچی ! ، در ضمن مطالعه قسمت Preference ها توصیه میشه :) (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
override  11 سال پیش
+1 0

اینجا یه نمونه ساده نوشتم به عنوان مثال، البته در صورتی که نمیخواید از کلاس  Edit Text که به صورت پیشفرض برای preferences در نظر گرفته شده استفاده کنید.اگر هم قصد استفاده از همون رو دارید که کارتون آسونتره ، امیدوارم به کارتون بیاد.

    private EditText                edtTest;
private Button btnTest;
public static SharedPreferences preferences;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.layout_games);

edtTest = (EditText) findViewById(R.id.edtTest);
btnTest = (Button) findViewById(R.id.btnTest);

btnTest.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

int gameScore = getGameScore();

preferences = PreferenceManager.getDefaultSharedPreferences(G.context);

int savedScore = preferences.getInt("Stored_Score", 0);

if (gameScore > savedScore) {
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("Stored_Score", gameScore);
editor.commit();
Toast.makeText(G.context, "New Score saved ", Toast.LENGTH_SHORT).show();

} else {
edtTest.setText("" + savedScore);
Toast.makeText(G.context, "EditText value Changed to " + savedScore, Toast.LENGTH_LONG).show();
}
}
});

}


private int getGameScore() {

int Score = 0;
try {
Score = Integer.parseInt(edtTest.getText().toString());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
return Score;

}

 

+1 0
سلام . مرسی دوست عزیز ولی من میخوام وقتی دفعه بعد که برنامه اجرا میشه اخرین مقدار داخل ادیت باکس باشه و ذخیره شده باشه و اگر مقدار جدیدی رو که وارد میکنیم از مقدار قبلی بزرگتر بود جایگزین کند در کل میخوام نیاز نباشه تا هر دفعه بر روی دکمه کلیک کنم تا مقدار ذخیره شده قبلی نمایش داده بشه (11 سال پیش)
+1 0
خب من فقط یه مثال ساده زدم اون پروژه ی 2048 رو هم که ALU گفتن ببینید احتمال زیاد جوابتون رو میگیرید من هنوز خودم فرصت نکردم ببینم از onResume هم به جای دکمه فکر کنم میتونید استفاده کنید (11 سال پیش)
0 0
مرسی. چشم حتما انجام میدم (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .