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

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

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

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

    }
}

نظرات

sajad98 11 سال پیش
یعنی هیچ کسی نیست کمک کنه؟
sajad98 11 سال پیش
کسی نبود کمک کنه؟
Criss 11 سال پیش
خیلی دیر به دیر اندروید کار میکنم الان شک دارم< اما فکر کنم وقتی متغیری رو از جنس double تعریف میکنید درواقع مشخص کردید که اون عدد اعشاری هست برای همین حتی برای اعداد صحیح هم یک ممیز میزاره

پاسخ‌ها 1

MeyrOOn 11 سال پیش

سلام. یه صفر چجوری اضافه میشه ؟؟
اینجوری :
1230
یا اینجوری :
123.0
اگه دومیه که درسته دیگه..

نظرات

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

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