بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
Gandalf 11 سال پیش
آخرین تغییر: 11 سال پیش

 
OnClickListener cleanClickListener =newOnClickListener(){

@Override
publicvoid onClick(View view){
txtResult.setText("0");
txtMini.setText("");
}

};

btnC.setOnClickListener(cleanClickListener);



کد رو اضافه کردم که محتویات رو پاک کنم. اما بقیه توابع تحت تاثیر قرار میگیرند به عنوان مثال ضرب 25 در 5 رو صفر نشون میده. تو تقسیم و جمع و تفریقم هم همین ایراد رو داره.

6 روزه دارم باهاش دست و پنجه نرم میکنم تروخدا کمک کنین :'(

نظرات

sadra 11 سال پیش
دوست نازنین. یک بار بطور کامل کدهاتو بنویس اینجا ببینیممشکل از کجاست جان برادر

پاسخ‌ها 4

sadra 11 سال پیش

کدت رو به این تغییر بده ببین درست میشه؟ ( کلا این رو بزار جای تون )

 btnC.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {

txtResult.setText("0");
txtMini.setText("");
}
});

نظرات

Gandalf 11 سال پیش
مشکل کماکان حل نشده :(
Gandalf 11 سال پیش

 package com.uncocoder.course.app.calculator;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class CalculatorActivity extends Activity {

public String lastOperator;
public Double lastNumber;
public boolean mustClearLcd;
public boolean mustOverrideOperator;
public Typeface lcdFont;


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

lcdFont = Typeface.createFromAsset(getAssets(), "lcd" + ".ttf");

Button btnC = (Button) findViewById(R.id.btnC);
Button btn0 = (Button) findViewById(R.id.btn0);
Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
Button btn3 = (Button) findViewById(R.id.btn3);
Button btn4 = (Button) findViewById(R.id.btn4);
Button btn5 = (Button) findViewById(R.id.btn5);
Button btn6 = (Button) findViewById(R.id.btn6);
Button btn7 = (Button) findViewById(R.id.btn7);
Button btn8 = (Button) findViewById(R.id.btn8);
Button btn9 = (Button) findViewById(R.id.btn9);
Button btnPlus = (Button) findViewById(R.id.btnPlus);
Button btnMinus = (Button) findViewById(R.id.btnMinus);
Button btnDevide = (Button) findViewById(R.id.btnDevide);
Button btnMultiply = (Button) findViewById(R.id.btnMultiply);
Button btnEqual = (Button) findViewById(R.id.btnEqual);
Button btnPoint = (Button) findViewById(R.id.btnPoint);

final TextView txtResult = (TextView) findViewById(R.id.txtResult);
final TextView txtMini = (TextView) findViewById(R.id.txtMini);

txtResult.setTypeface(lcdFont);
txtMini.setTypeface(lcdFont);

OnClickListener cleanClickListener = new OnClickListener() {

@Override
public void onClick(View view) {
txtResult.setText("0");
txtMini.setText("");
}

};


OnClickListener operatorClickListener = new OnClickListener() {

@Override
public void onClick(View view) {
double number = Double.parseDouble(txtResult.getText().toString());
Button btn = (Button) view;
String operator = btn.getText().toString();

mustClearLcd = true;

if (mustOverrideOperator) {
lastOperator = operator;

String oldMiniText = txtMini.getText().toString();

String croppedString = oldMiniText.substring(0, oldMiniText.length() - 1);
txtMini.setText(croppedString + operator);

return;
}

String oldMiniText = txtMini.getText().toString();
txtMini.setText(oldMiniText + number + operator);

mustOverrideOperator = true;

if (lastOperator == null) {
lastNumber = number;
} else {
double result = 0;
if (lastOperator.equals("/")) {
result = lastNumber / number;
}
else if (lastOperator.equals("*")) {
result = lastNumber * number;
}
else if (lastOperator.equals("+")) {
result = lastNumber + number;
}
else if (lastOperator.equals("-")) {
result = lastNumber - number;
}

else if (lastOperator.equals("btnC")) {
result = 0;
}

else if (lastOperator.equals("=")) {

}

txtResult.setText("" + result);
lastNumber = result;
}

lastOperator = operator;
}
};

OnClickListener numberClickListener = new OnClickListener() {

@Override
public void onClick(View view) {
mustOverrideOperator = false;
/*
switch (view.getId()) {
case R.id.btn0:
break;

case R.id.btn1:
break;
}
*/

Button btn = (Button) view;
String btnText = btn.getText().toString();
String oldText = txtResult.getText().toString();

if (mustClearLcd) {
txtResult.setText(btnText);
mustClearLcd = false;
return;
}

if (btnText.equals(".")) {
if ( !oldText.contains(".")) {
txtResult.setText(oldText + btnText);
return;
}

return;
}

if (oldText.equals("0")) {
txtResult.setText(btnText);
} else {
if (oldText.length() < 10) {
txtResult.setText(oldText + btnText);
}
}
}
};

btnPlus.setOnClickListener(operatorClickListener);
btnMinus.setOnClickListener(operatorClickListener);
btnEqual.setOnClickListener(operatorClickListener);
btnDevide.setOnClickListener(operatorClickListener);
btnMultiply.setOnClickListener(operatorClickListener);

btnPoint.setOnClickListener(numberClickListener);
btn0.setOnClickListener(numberClickListener);
btn1.setOnClickListener(numberClickListener);
btn2.setOnClickListener(numberClickListener);
btn3.setOnClickListener(numberClickListener);
btn4.setOnClickListener(numberClickListener);
btn5.setOnClickListener(numberClickListener);
btn6.setOnClickListener(numberClickListener);
btn7.setOnClickListener(numberClickListener);
btn8.setOnClickListener(numberClickListener);
btn9.setOnClickListener(numberClickListener);

btnC.setOnClickListener(cleanClickListener);

}
}

نظرات

Gandalf 11 سال پیش
قسمتس که من به پروژه ی استاد اضافه کردم btnC و cleanClickListener هست ؟
Gandalf 11 سال پیش
قسمتس که من به پروژه ی استاد اضافه کردم btnC و cleanClickListener هست
sadra 11 سال پیش
بدون این btnC پروژه درست کار میکنه؟ به اون صورت که گفتم کد رو تست کردین؟ جواب نداد؟
Gandalf 11 سال پیش
بله پروژه خود استاد هست ( اموزش ماشین حساب ) ولی وقتی کلید پاک کن رو میذارم کار نمیکنه یعنی کار میکنه ولی اشتباه! میتونین سورس پروژه رو لینک از اینجا دانلود کنین
Gandalf 11 سال پیش
تست کردم بازم تا قبل اینکه ''پاک کن '' رو بزنم درسته ولی وقتی صفحه رو پاک میکنم همه ی جواب ها صفر میشوند
ajn91 11 سال پیش

اینم جواب شما

 btnC.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        txtMini.setText("");
        txtResult.setText("0");
        lastNumber = null;
        lastOperator = null;
        mustClearLcd = false;

    }
});

نظرات

salva 11 سال پیش

ماشین حساب سایت

سلام دوستان. من ماشین حسابی که در سایت قرار داده شده رو اجرا می کنم اول 2*3=6 رو درست کار می کنه اما بعد می نویسم 2*5 صفر نشون می ده و هر عملگر دیگه ای هم امتحان می کنم همین مورد هست.لطفا رسیدگی کنید.چون من پروژه ماشین حساب رو خودم هم کار کردم و این مشکل برای من هم وجود داره. حتما باید دکمه پاک کردن باشه تا درست کار کنه؟ اگر اینطوری هست پس چرا در پروژه ای که در سایت قرار داده شده رسیدگی نشده؟

کاری ندارم که کسی خودش ماشین حساب کار کرده یا نه،چون خودم هم ماشین حساب رو با آموزش های ویدئویی استاد کار کردم و حتا گرافیک ماشین حساب رو هم مثل ایشون کار کردم. موضوع این هست که فرض کنید من تازه ایمپورت یاد گرفتم و دارم به دوستم تبلیغ می کنم بیاد سایت و  ثبت نام کنه. به خونه مون دعوت کردم و پروژه ماشین حساب رو براش نشون میدم اما اون چیزی که باید ببینه نمی بینه :) دوستان با کسی دعوا ندارم.خودم این پروژه رو کار کردم تموم شد .برای دوستانم می خوام سایت رو تبلیغ کنم و هم اینکه وقتی استاد زحمت کشیدند و پروژه ماشین حساب رو در سایت قرار دادند ما نباید انتقاد کنیم و فقط بگوییم چح چح؟ 

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

 

نظرات

کاشی زاده 11 سال پیش
پروژه ماشین حساب یک پروژه ساده نیست به خاطر پیچیدگی توابعش ولی در پروژه استاد من اشکالی ندیدم ، من الان نمیدونم دقیقا مشکل شما از کجای کدتون میتونه باشه ولی اگر کدتون رو قرار بدید شاید بتونم کمکی بکنم
salva 11 سال پیش
جناب محمد حسین من قدم به قدم این پروژه رو با ویدئوی استاد پیش رفتم و همه چیز درست بود اما موقع اجرا دیدم ماشین حسابم 2*3 رو اجرا می کنه اما بعد ادامه ش که می نویسم +4 اون جواب قبلی رو صفر می کنه و جواب رو جای 10 می نویسه 4! بعد اومدم اینجا و ماشین حساب سایت رو هم اجارا کردم که به همین مشکل برخورد کردم، با اضافه کردن کدی این مشکل برای ماشین حساب من حل شد اما هنوز هم ماشین حساب سایت این مشکل رو داره.

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