بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
ارور ONCLICK در ماشین حساب
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
دوستان من ماشین حساب رو طبق ویدیواستاد کد نویسی میکنم دکمه اعداد درست کار میکنه ولی دکمه های اوپرند کلیک که میشه وارد setText نمیشه و این ارور رو میده
Caused by: java.lang.NullPointerException
at com.sarimatix.samira.calculator.MainActivity.onCreate(MainActivity.java:230)
اینم کدهایی که نوشتم
package com.sarimatix.samira.calculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView txtmini;
TextView txtresult;
Button btn0;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
Button btn5;
Button btn6;
Button btn7;
Button btn8;
Button btn9;
Button btnplus;
Button btnmultiply;
Button btnmines;
Button btndivision;
Button btnpoint;
Button btnclean;
Button btncleanentity;
Button btnback;
Button btnsign;
Button btnequal;
boolean resetlcd = false;
double currentresult =0;
String operator="";
public void backOne(){
String back=txtresult.getText().toString();
String newBack=back.substring(0,back.length()-1);
txtresult.setText(newBack); }
public void point(){
if (resetlcd){
txtresult.setText("0");
resetlcd=false;}
String oldvalue =txtresult.getText().toString();
if (oldvalue.contains("."))
{return;}
if (oldvalue.length()>10)
{return; }
txtresult.setText(oldvalue + "."); }
public void compiute(String nextOperator){
String resultvalue =txtresult.getText().toString();
double resultnumber=Double.parseDouble(resultvalue);
if(operator.equals("+")){
currentresult += resultnumber;}
else if(operator.equals("-")){
currentresult -= resultnumber;}
else if(operator.equals("/")){
currentresult /= resultnumber;}
else if(operator.equals("*")){
currentresult *= resultnumber;}
else if(operator.equals("")){
currentresult = resultnumber;}
String oldresult=txtmini.getText().toString();
txtmini.setText(oldresult+resultnumber+nextOperator);
txtresult.setText("" + currentresult);
operator=nextOperator;
resetlcd = true; }
public void prosessEqual() {
compiute("");
txtmini.setText(""); }
public void appendOperator(String nextOperator){
compiute(nextOperator);}
public void appendNumber(int number){
String oldvalue =txtresult.getText().toString();
if (resetlcd){
oldvalue ="";
resetlcd=false;}
if(oldvalue.equals("0")){
if (number==0)
{return; }
oldvalue ="";}
if (oldvalue.length()>10)
{return;}
txtresult.setText(oldvalue + number); }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtmini=(TextView)findViewById(R.id.txtmini);
txtresult=(TextView)findViewById(R.id.txtresult);
btn0=(Button)findViewById(R.id.btn0);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
btn3=(Button)findViewById(R.id.btn3);
btn4=(Button)findViewById(R.id.btn4);
btn5=(Button)findViewById(R.id.btn5);
btn6=(Button)findViewById(R.id.btn6);
btn7=(Button)findViewById(R.id.btn7);
btn8=(Button)findViewById(R.id.btn8);
btn9=(Button)findViewById(R.id.btn9);
btnplus=(Button)findViewById(R.id.btnplus);
btnmines=(Button)findViewById(R.id.btnmines);
btnmultiply=(Button)findViewById(R.id.btnmultiply);
btndivision=(Button)findViewById(R.id.btndivision);
btnpoint=(Button)findViewById(R.id.btnpoint);
btnclean=(Button)findViewById(R.id.btnclean);
btncleanentity=(Button)findViewById(R.id.btncleanentity);
btnback=(Button)findViewById(R.id.btnback);
btnsign=(Button)findViewById(R.id.btnsign);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(0);
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(1);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(2);
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(3);
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(4);
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(5);
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(6);
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(7);
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(8);
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendNumber(9);
}
});
btnplus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendOperator("+");
}
});
btnmines.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendOperator("-");
}
});
btnmultiply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendOperator("*");
}
});
btndivision.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
appendOperator("/");
}
});
btnpoint.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
point();
}
});
btnclean.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtresult.setText("0");
txtmini.setText("");
currentresult=0;
resetlcd=false;
}
});
btncleanentity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtresult.setText("0");
}
});
btnback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
backOne();
}
});
btnequal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prosessEqual();
}
});
}
}
هنوز پاسخی ثبت نشده است
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات