رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

خطای اجرای رویداد Onclick


پست های پیشنهاد شده

با سلام . 

یه ماشین حساب خیلی ساده نوشتم که ابتدا جواب هارو با Toast نشون می داد ولی بعد دوست داشتم که از Custom Toast استفاده همه کد هارو زدم و هیچ خطایی در اندروید استدیو نبود . 

ولی هنگام اجرا بعد از زدن دکمه ها برنامه خطا میده و بسته میشه . 

public class MainActivity extends AppCompatActivity {
    EditText edt1, edt2;
    Button btnp, btnm, btns, btnd;

    double num1, num2=0.0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FindView();
        initialize();


    }

    public void FindView() {
        btnd = (Button) findViewById(R.id.btn3);
        btnm = (Button) findViewById(R.id.btn2);
        btnp = (Button) findViewById(R.id.btn1);
        btns = (Button) findViewById(R.id.btn4);
        edt1 = (EditText) findViewById(R.id.editText);
        edt2 = (EditText) findViewById(R.id.editText2);
    }

    public void initialize() {
        Settypeface();
        SetSize();
    }

    public void Settypeface() {
        Typeface font = Typeface.createFromAsset(getAssets(), "Fonts/segoepr.ttf");
        btnp.setTypeface(font);
        btns.setTypeface(font);
        btnm.setTypeface(font);
        btnd.setTypeface(font);

        edt1.setTypeface(font);
        edt2.setTypeface(font);

    }

    public void SetSize() {
        float Size = 25;
        btnp.setTextSize(Size);
        btnm.setTextSize(Size);

        btnd.setTextSize(Size);
        btns.setTextSize(Size);
        edt1.setTextSize(Size * 2);
        edt2.setTextSize(Size * 2);

    }

    public void Click(View v) {
        int id = v.getId();
        num1 = Double.parseDouble(edt1.getText().toString());
        num2 = Double.parseDouble(edt2.getText().toString());

        switch (id) {
            case R.id.btn1:
//                Toast2(num1+num2+"");
                Toast.makeText(getApplicationContext(),num1+num2+"",Toast.LENGTH_LONG).show();
                edt1.setText("");
                edt2.setText("");

                break;
            case R.id.btn2:
//                Toast2(num1/num2+"");
               Toast.makeText(getApplicationContext(),num1-num2+"",Toast.LENGTH_LONG).show();
                edt1.setText("");
                edt2.setText("");

                break;
            case R.id.btn3:
                if (num2!=0){
//                    Toast2(num1/num2+"");
               Toast.makeText(getApplicationContext(),num1/num2+"",Toast.LENGTH_LONG).show();
                    edt1.setText("");
                    edt2.setText("");
                   }
                else
                Toast.makeText(getApplicationContext(),"تعریف نشده است",Toast.LENGTH_LONG).show();
//                    Toast2("تعریف نشده است");
                edt1.setText("");
                edt2.setText("");
                break;
            case R.id.btn4:
//                Toast2(num1*num2+"");
                Toast.makeText(getApplicationContext(),num1*num2+"",Toast.LENGTH_LONG).show();
                edt1.setText("");
                edt2.setText("");

                break;

            default:
                Toast.makeText(getApplicationContext(),"تعریف نشده است",Toast.LENGTH_LONG).show();
//                Toast2("تعریف نشده است");
                break;
        }
    }
    public void Toast2(String e){
        LayoutInflater inflater=getLayoutInflater();
        View layout2=inflater.inflate(R.layout.toast1,(ViewGroup)findViewById(R.id.tst1));
        TextView txt1=(TextView)findViewById(R.id.txt1);
        assert txt1 != null;
        txt1.setText(e);
        Toast toast3=new Toast(getApplicationContext());
        toast3.setGravity(Gravity.CENTER_HORIZONTAL,0,0);
        toast3.setDuration(Toast.LENGTH_LONG);
        toast3.setView(layout2);
        toast3.show();
    }
}

پیام خطا : 

06-05 15:22:34.423 5638-5689/com.prowebsaz.simplecalculator E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaa6cc70
06-05 15:24:18.813 5638-5689/com.prowebsaz.simplecalculator E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaa6c880
06-05 15:24:20.690 5638-5689/com.prowebsaz.simplecalculator E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaa6c9d0
06-05 15:24:26.970 5638-5689/com.prowebsaz.simplecalculator E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaa6e480
06-05 15:24:28.408 5638-5638/com.prowebsaz.simplecalculator E/AndroidRuntime: FATAL EXCEPTION: main
                                                                              Process: com.prowebsaz.simplecalculator, PID: 5638
                                                                              java.lang.IllegalStateException: Could not execute method for android:onClick
                                                                                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                                                  at android.view.View.performClick(View.java:5198)
                                                                                  at android.view.View$PerformClick.run(View.java:21147)
                                                                                  at android.os.Handler.handleCallback(Handler.java:739)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                  at android.os.Looper.loop(Looper.java:148)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                               Caused by: java.lang.reflect.InvocationTargetException
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                                  at android.view.View.performClick(View.java:5198) 
                                                                                  at android.view.View$PerformClick.run(View.java:21147) 
                                                                                  at android.os.Handler.handleCallback(Handler.java:739) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                  at android.os.Looper.loop(Looper.java:148) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                                                  at com.prowebsaz.simplecalculator.MainActivity$override.Toast2(MainActivity.java:128)
                                                                                  at com.prowebsaz.simplecalculator.MainActivity$override.access$dispatch(MainActivity.java)
                                                                                  at com.prowebsaz.simplecalculator.MainActivity.Toast2(MainActivity.java:0)
                                                                                  at com.prowebsaz.simplecalculator.MainActivity$override.Click(MainActivity.java:83)
                                                                                  at com.prowebsaz.simplecalculator.MainActivity$override.access$dispatch(MainActivity.java)
                                                                                  at com.prowebsaz.simplecalculator.MainActivity.Click(MainActivity.java:0)
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                                                                                  at android.view.View.performClick(View.java:5198) 
                                                                                  at android.view.View$PerformClick.run(View.java:21147) 
                                                                                  at android.os.Handler.handleCallback(Handler.java:739) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                  at android.os.Looper.loop(Looper.java:148) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
 

ویرایش شده توسط Paranormal
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...