مشکل در پروژه ماشین حساب
OnClickListener cleanClickListener =newOnClickListener(){
@Override
publicvoid onClick(View view){
txtResult.setText("0");
txtMini.setText("");
}
};
btnC.setOnClickListener(cleanClickListener);
کد رو اضافه کردم که محتویات رو پاک کنم. اما بقیه توابع تحت تاثیر قرار میگیرند به عنوان مثال ضرب 25 در 5 رو صفر نشون میده. تو تقسیم و جمع و تفریقم هم همین ایراد رو داره.
6 روزه دارم باهاش دست و پنجه نرم میکنم تروخدا کمک کنین :'(
کدت رو به این تغییر بده ببین درست میشه؟ ( کلا این رو بزار جای تون )
btnC.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
txtResult.setText("0");
txtMini.setText("");
}
});
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);
}
}
اینم جواب شما
btnC.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txtMini.setText(""); txtResult.setText("0"); lastNumber = null; lastOperator = null; mustClearLcd = false; } });
ماشین حساب سایت
کاری ندارم که کسی خودش ماشین حساب کار کرده یا نه،چون خودم هم ماشین حساب رو با آموزش های ویدئویی استاد کار کردم و حتا گرافیک ماشین حساب رو هم مثل ایشون کار کردم. موضوع این هست که فرض کنید من تازه ایمپورت یاد گرفتم و دارم به دوستم تبلیغ می کنم بیاد سایت و ثبت نام کنه. به خونه مون دعوت کردم و پروژه ماشین حساب رو براش نشون میدم اما اون چیزی که باید ببینه نمی بینه :) دوستان با کسی دعوا ندارم.خودم این پروژه رو کار کردم تموم شد .برای دوستانم می خوام سایت رو تبلیغ کنم و هم اینکه وقتی استاد زحمت کشیدند و پروژه ماشین حساب رو در سایت قرار دادند ما نباید انتقاد کنیم و فقط بگوییم چح چح؟
به هر حال من حرفم رو زدم و قصد جسارت به کسی نداشتم و امیدوارم که این مشکل حل بشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .