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

مشکل این کد چیه؟

sajad98  11 سال پیش  11 سال پیش
0 0

سلام. من اون پروژه تبدیل واحد رو درست کردم خودم اما نمیدونم چرا هر وقت دکمه 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
اگه دومیه که درسته دیگه..

0 0
اضافه کردنش مثل اولیه یعنی مثلا وقتی 10000 رو وارد میکنی یه صفر میزاره جلوش و میشه 100000 (11 سال پیش)
0 0
خب اگر اینجوری باشه که شما دارید میگید < احتمالا یکجایی *10 اضاف دارید (11 سال پیش)

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