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

مشکل پروژه ماشین حساب .آموزش های جدید.

یونس.م  8 سال پیش  8 سال پیش
0 0

سلام.چند تا سوال پیش اومده.در sری آموزش های جدید اندروید در پروژه ماشین حساب یه مشکل وجود داره.اینه دکمه back که باعث پاک شدن اخرین عدد میشد اگر این دکمه رو چند بار بزنی برنامه کلا قفل میشه و از اکتیویتی رو کلا میبنده و میاد بیرون.راه حلش چیه.یه سوال هم داشتم از دوستان.در مورد اون متد compute که یک قسمتش (nextOperand و operand) باعث میشد عملگر ها به موقع عمل کنن و محاسبات درست انجام بشه.اگه میشه یخورده در موردش توضیح بدبد چون واسه تازه کارا واقعا گیج کننده است.اگه میشه اون متد رو توضیح بدید البته با تمرکز روی همین قسمت operand ....

0 0
البته زمانی دکمه back باعث میشه که از برنامه قفل کنه و از اکتویتی خارج میشه که دیگه عددی نباشه که پاک کنه و وقتی همه ی اعداد پاک بشن اگه یبار دیگه این دکمه رو بزنی برنامه قفل میشه و خارج میشه (8 سال پیش)
0 0
برای operand و nextOperand متاسفانه هنوز آموزش رو کامل ندیدم... :) (8 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Mahdidrv  8 سال پیش
0 0

سلام برای قسمت دکمه Back میتونین از یه شرط استفاده کنین

به این صورت که اگه طول txt_resault بزرگتر از صفر بود دستورات تابع اجرا بشه:

 
private void backoneLetter(){
if(txt_result.length() > 0) {
String value = txt_result.getText().toString();
String newValue = value.substring(0, value.length() - 1);
txt_result.setText(newValue);
}
}
0 0
به نظرم یک else if هم آخرش اضافه کنید که اگر طول برابر 1 بود عدد رو برابر 0 بزاره بهتره (8 سال پیش)
پاسخ به سوال 
AMir  8 سال پیش
0 0

برای فهمیدن کارکرد oprand و nextOprand بهتره به ماشین حساب ویندوز دقت کنید شکل زیر

اگر به عکس بالا دقت کنید میبینید مقداری که در txt_result ریخته شده مجموع عدد 2+5 میباشد و عمل ضربی که انجام دادیم منتظر مقدار هست تا انجام شود پس با همین منطق در زمان برنامه نویسی ما باید اعمالی که انجام میدهیم یک عمل عقب تر از عمل گفته شده باشه یعنی من ابتدا گفتم جمع بعد عددی که میخام جمع شود رو گفتم بعد عمل بعدی رو گفتم در زمانی که من روی ضرب کلیک کردم عمل جمع رو انجام داده و منتظر عددی هست که باید ضرب بشه . 

برای این کار ما باید یک متغیر تعریف کنیم که عمل قبلی رو داخلش ذخیره کنیم که میشه همون oprand زمانی که عملگر بعدی اومد عمل را با oprand انجام میدیم و زمانی که عمل انجام شد عملگر بعدی رو توی oprand میریزیم و منتظر دستور جدید میمونیم


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