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

ارور ONCLICK در ماشین حساب

سید روح اله حسینی  9 سال پیش  9 سال پیش
0 0

دوستان من ماشین حساب رو طبق ویدیواستاد کد نویسی میکنم دکمه اعداد درست کار میکنه ولی دکمه های اوپرند کلیک که میشه وارد 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();
}
});

}
}
 
 
0 0
این کدهات که درسته مشکل از جای دیگه هستش یه نمای کلی تر از کدت بزار. (9 سال پیش)
0 0
من پروژه رو یکبار دیگه درست کردم و دوباره با onclick به مشکل روبرو میشم. واضح ترش اینه که در پروژه قبل ایراد رو از خط onclick میگرفت و الان هم ک پروژه رو دوباره ساختم از هیچکدوم onclickها ایراد نمیگیره فقط از یکیشون ایراد میگیره درصورتی که کپی شده از بقیه onclick هست. لطفا راهنمایی کنید چرا اینطوری میشه؟ (9 سال پیش)
0 0
کدها و خطای بالارو جدید گذاشتم و مربوط به پروژه جدید هست. (9 سال پیش)
0 0
من خط آخر که مربوط به ONCLICK مساوی هست رو وقتی پاک میکنم از کرش در میاد (9 سال پیش)
+2 0
دوست عزیز btnEqual خالی هست واسه همین خطا میده ... شی مورد نظر رو بهش ندادی (9 سال پیش)
0 0
تشکر فراوان (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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