بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل این کد چیه؟
سلام. من اون پروژه تبدیل واحد رو درست کردم خودم اما نمیدونم چرا هر وقت دکمه Calculate رو میزنم عدد تغییر میکنه. نه که تغییر کنه. اول بار درسته اما بعدش یه صفر اضافه میشه جلوش و بقیه اعداد هم یه صفر میگیرند. هر چی به کدش نگاه کردم که مشکلش چیه متوجه نشدم. ممنون میشم شما کمک کنید.
package com.sajad.converter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class VelocityActivity extends Activity {
public EditText edtCmS;
public EditText edtMmS;
public EditText edtKmS;
public EditText edtMS;
public EditText UserInput;
public Button btnCalculate;
double MS = 0;
double KmS = 0;
double CmS = 0;
double MmS = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.velocity);
edtCmS = (EditText) findViewById(R.id.edtCmS);
edtMmS = (EditText) findViewById(R.id.edtMmS);
edtKmS = (EditText) findViewById(R.id.edtKmS);
edtMS = (EditText) findViewById(R.id.edtMS);
btnCalculate = (Button) findViewById(R.id.btnCalculate);
FocusChanged();
OnClickListener btnCalculateClicked = (new OnClickListener() {
@Override
public void onClick(View view) {
if (edtMS.getText().toString().length() > 0) {
//MS = Double.parseDouble(edtMS.getText().toString());
KmS = Double.parseDouble(edtMS.getText().toString()) * 0.001;
CmS = Double.parseDouble(edtMS.getText().toString()) * 100;
MmS = Double.parseDouble(edtMS.getText().toString()) * 1000;
edtKmS.setText("" + KmS);
edtMmS.setText("" + MmS);
edtCmS.setText("" + CmS);
return;
}
if (edtKmS.getText().toString().length() > 0) {
//KmS = Double.parseDouble(edtKmS.getText().toString());
MS = Double.parseDouble(edtKmS.getText().toString()) * 1000;
CmS = Double.parseDouble(edtKmS.getText().toString()) * 10000;
MmS = Double.parseDouble(edtKmS.getText().toString()) * 1000000;
edtMmS.setText("" + MmS);
edtMS.setText("" + MS);
edtCmS.setText("" + CmS);
return;
}
if (edtCmS.getText().toString().length() > 0) {
//CmS = Integer.parseInt((edtCmS.getText().toString()));
MS = Double.parseDouble(edtCmS.getText().toString()) * 0.01;
KmS = Double.parseDouble(edtCmS.getText().toString()) * 0.00001;
MmS = Double.parseDouble(edtCmS.getText().toString()) * 10;
/*
BigDecimal KMS = new BigDecimal(Double.toString(KmS));
BigDecimal MMS = new BigDecimal(Double.toString(MmS));
BigDecimal MS1 = new BigDecimal(Double.toString(MS));
*/
edtKmS.setText("" + KmS);
edtMmS.setText("" + MmS);
edtMS.setText("" + MS);
return;
}
if (edtMmS.getText().toString().length() > 0) {
//MmS = Double.parseDouble(edtMmS.getText().toString());
MS = Double.parseDouble(edtMmS.getText().toString()) * 0.001;
KmS = Double.parseDouble(edtMmS.getText().toString()) * 0.000001;
CmS = Double.parseDouble(edtMmS.getText().toString()) * 0.1;
edtKmS.setText("" + KmS);
edtMS.setText("" + MS);
edtCmS.setText("" + CmS);
return;
}
}
});
btnCalculate.setOnClickListener(btnCalculateClicked);
}
public void FocusChanged() {
OnFocusChangeListener FocusChange = (new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean arg1) {
switch (view.getId()) {
case R.id.edtMS:
Toast.makeText(VelocityActivity.this, "edtCmS Clicked", Toast.LENGTH_SHORT).show();
edtMS.setText("");
edtMmS.setText("");
edtKmS.setText("");
break;
case R.id.edtCmS:
Toast.makeText(VelocityActivity.this, "edtCmS Clicked", Toast.LENGTH_SHORT).show();
edtMS.setText("");
edtMmS.setText("");
edtKmS.setText("");
break;
case R.id.edtKmS:
Toast.makeText(VelocityActivity.this, "edtKmS Clicked", Toast.LENGTH_SHORT).show();
edtMS.setText("");
edtCmS.setText("");
edtMmS.setText("");
break;
case R.id.edtMmS:
Toast.makeText(VelocityActivity.this, "edtMS Clicked", Toast.LENGTH_SHORT).show();
edtKmS.setText("");
edtCmS.setText("");
edtMmS.setText("");
break;
}
}
});
edtKmS.setOnFocusChangeListener(FocusChange);
edtCmS.setOnFocusChangeListener(FocusChange);
edtMmS.setOnFocusChangeListener(FocusChange);
edtMS.setOnFocusChangeListener(FocusChange);
}
}
0
0
یعنی هیچ کسی نیست کمک کنه؟ (11 سال پیش)
0
0
کسی نبود کمک کنه؟ (11 سال پیش)
+1
0
خیلی دیر به دیر اندروید کار میکنم الان شک دارم< اما فکر کنم وقتی متغیری رو از جنس double تعریف میکنید درواقع مشخص کردید که اون عدد اعشاری هست برای همین حتی برای اعداد صحیح هم یک ممیز میزاره (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
MeyrOOn
11 سال پیش
+1
0
سلام. یه صفر چجوری اضافه میشه ؟؟
اینجوری :
1230
یا اینجوری :
123.0
اگه دومیه که درسته دیگه..
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .