بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در کد کنترل edit box و کرش برنامه
سلام، من توی این کد مشکل دارم
وقتی توی 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);
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .