بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سوال : مشکل کد من در برنامه تبدیل واحد (حل شد )

مدیریت گفتگو
AMir 11 سال پیش
آخرین تغییر: 9 سال پیش

اول از همه ببخشید انقدر سوال میپرسم

الان حدود دو ساعت هست که دارم با این کد ور میرم ولی نمیدونم چرا وقتی روی دکمه convert کلیک میکنم برنامه کرش میکنه البته قسمت mm درست کار میکنه یعنی موقعی که یک عدد توی قسمت mm میزنم و دکمه convert رو میزنم درست تبدیل میکنه ولی وقتی توی قسمت های دیگه عدد مینویسم و کانورت رو میزنم بر نامه کرش میکنه

خطا های LogCat

اینم از کد 

public class Distance extends ActionBarActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.distance);
		final EditText edtcm = (EditText) findViewById(R.id.edtcm);
		final EditText edtm = (EditText) findViewById(R.id.edtm);
		final EditText edtkm = (EditText) findViewById(R.id.edtkm);
		final EditText edtmm =(EditText) findViewById(R.id.edtmm);
		final Button btnconvert = (Button) findViewById(R.id.btnconvert);
	edtmm.setOnFocusChangeListener(new OnFocusChangeListener() {
			@Override
			public void onFocusChange(View arg0, boolean arg1) {
				edtcm.setText(" ");
				edtm.setText(" ");
				edtkm.setText(" ");
		});
	edtcm.setOnFocusChangeListener(new OnFocusChangeListener() {
			@Override
			public void onFocusChange(View arg0, boolean arg1) {
				edtmm.setText(" ");
				edtm.setText(" ");
				edtkm.setText(" ");
			}
		});
	edtm.setOnFocusChangeListener(new OnFocusChangeListener() {
		@Override
		public void onFocusChange(View arg0, boolean arg1) {
			edtcm.setText(" ");
			edtmm.setText(" ");
			edtkm.setText(" ");
		}
	});
	edtkm.setOnFocusChangeListener(new OnFocusChangeListener() {
		@Override
		public void onFocusChange(View arg0, boolean arg1) {
			edtcm.setText(" ");
			edtm.setText(" ");
			edtmm.setText(" ");
		}
	});
	btnconvert.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View arg0) {
		if (edtmm.getText().toString().length() > 0){
			double mm =	Double.parseDouble(edtmm.getText().toString());
			edtcm.setText(""+(mm*0.1));
			edtm.setText(""+( mm*0.001));
			edtkm.setText(""+(mm*0.000001));
			return;
		}
		if (edtcm.getText().toString().length() > 0){
			double cm =	Double.parseDouble(edtcm.getText().toString());
			edtmm.setText(""+(cm*10));
			edtm.setText(""+( cm*0.01));
			edtkm.setText(""+(cm*0.00001));
			return;
		}if (edtm.getText().toString().length() > 0){
			double m =	Double.parseDouble(edtm.getText().toString());
			edtmm.setText(""+(m*1000));
			edtcm.setText(""+( m*100));
			edtkm.setText(""+(m*0.001));
			return;
		}if (edtkm.getText().toString().length() > 0){
			double km =	Double.parseDouble(edtkm.getText().toString());
			edtmm.setText(""+(km*1000000));
			edtcm.setText(""+( km*100000));
			edtm.setText(""+(km*1000));
			return;
		}
		}
	});

نظرات

کاشی زاده 11 سال پیش
برای این که دوستان بتونن بهتر مشکل شما رو متوجه بشوند خطاهای موجود در لاگ کت را بنویسید و کد را کوتاه تر کنید .
AMir 11 سال پیش
کد رو تا میشد کوتاه کردم و خطا های لوگ کت رو در موقع کرش گذاشتم
کاشی زاده 11 سال پیش
لطفا عکس را در سایت آپلود کنید تا بهتر دیده شود ، مشکل شما به خاطر این هست که برخی از EditBox های شما مقدار "" دارند و نمیتوان این مقدار را به عدد تبدیل کرد و باید قبل از خواندن داده ها از EditBox چک کنید در صورتی که مقدار String برابر "" نباشد محاسبه انجام شود ، فکر میکنم این سوال حدود 8 بار در انجمن مطرح شده :)
Reza 11 سال پیش
سلام ، اون جاهایی که فوکوس تغییر میکنه ( setOnFocusChangeListener ) به جای " " مقدار "" بذار . یعنی توش فاصله نذار . مشکل 100 % به خاطر اینه ، این کار رو بکن حل میشه .
AMir 11 سال پیش
ممنون از راهنماییتون حل شد

هنوز پاسخی ثبت نشده است


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