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

مشکل در کد کنترل edit box و کرش برنامه

احسان  7 سال پیش  7 سال پیش
0 0

سلام، من توی این کد مشکل دارم

وقتی توی edit box دوم عددی وارد میکنیم ضرب در عددی میکنه با استفاده از یک تابع و نتیجه رو توی یک text view نمایش میده

اگر یک عدد داخل edit box بنویسیم یا از قبل داخلش باشه مشکلی وجود نداره

ولی اگر خالی باشه و روی دکمه compute کلیک کنیم برنامه کرش میکنه ، سعی کردم با if این مشکل رو رفع کنم ولی باز هم نتونستم

لطفا راهنمایی کنید چطور میشه کاری کرد اگه اعداد داخلش رو پاک کنیم عدد ۰ داخلش بمونه یا این مشکل کرش رو حل کرد

فایل جاوا : http://s8.picofile.com/file/8352378192/Startup4TestActivity.java.html

کد ها :

 package com.test;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class Startup4TestActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final TextView txtOut = (TextView) findViewById(R.id.txtOut);
        final EditText edtNumber = (EditText) findViewById(R.id.edtCompute);
        edtNumber.setText("0");
        final EditText edtName = (EditText) findViewById(R.id.edtName);
        edtName.setText("Your name");
        Button btnSet = (Button) findViewById(R.id.btnSet);
        Button btnCom = (Button) findViewById(R.id.btnCompute);

        txtOut.setText("");
        txtOut.setTextColor(Color.parseColor("#ffffff"));
        txtOut.setTextSize(28);

        btnSet.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String edtNames = edtName.getText().toString();
                txtOut.setText(edtNames);

            }
        });

        btnCom.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String edtCom = edtNumber.getText().toString();
                int inteeg = Integer.parseInt(edtCom);
                if (edtCom == null) {
                    return;
                }

                int out = multy(inteeg, 2);
                txtOut.setText("" + out);
                Log.i("LOG", "" + out);

            }
        });

    }


    public int multy(int a, int b) {

        return a * b;
    }

}

لاگ :

02-16 04:39:08.366: E/AndroidRuntime(2688): FATAL EXCEPTION: main
02-16 04:39:08.366: E/AndroidRuntime(2688): java.lang.NumberFormatException: Invalid int: ""
02-16 04:39:08.366: E/AndroidRuntime(2688):     at java.lang.Integer.invalidInt(Integer.java:138)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at java.lang.Integer.parseInt(Integer.java:359)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at java.lang.Integer.parseInt(Integer.java:332)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at com.test.Startup4TestActivity$2.onClick(Startup4TestActivity.java:49)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.view.View.performClick(View.java:4209)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.view.View$PerformClick.run(View.java:17360)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.os.Handler.handleCallback(Handler.java:725)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.os.Looper.loop(Looper.java:137)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at android.app.ActivityThread.main(ActivityThread.java:5041)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at java.lang.reflect.Method.invokeNative(Native Method)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at java.lang.reflect.Method.invoke(Method.java:511)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-16 04:39:08.366: E/AndroidRuntime(2688):     at dalvik.system.NativeStart.main(Native Method)

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Sajad HP  7 سال پیش
0 0

btnCom.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String edtCom = edtNumber.getText().toString().trim();
if(edtCom.isEmpty()){ return;}
                int inteeg = Integer.parseInt(edtCom);
                if (edtCom == null) {
                    return;
                }

                int out = multy(inteeg, 2);
                txtOut.setText("" + out);
                Log.i("LOG", "" + out);

            }
        });

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