0

是的,我一直在讨论这个话题的几个问题。这是关于 textWatcher 字段上的 setText 的。我对这一切都很陌生,也许这就是为什么还没有能够应用一个好的修复。我不是一个解释类型,所以......这是我的代码:

package com.newera.speedsnfeeds;

import java.math.BigDecimal;
import java.math.RoundingMode;



import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
 import android.widget.EditText;

public class Main1Activity extends Activity implements TextWatcher {

private EditText dia, sfm, rpm,flutes,load,feed;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main1);

    dia = (EditText) findViewById(R.id.dia);
    dia.addTextChangedListener(this);

    sfm = (EditText) findViewById(R.id.sfm);
    sfm.addTextChangedListener(this);

    rpm = (EditText) findViewById(R.id.rpm);
    rpm.addTextChangedListener(this);

    flutes = (EditText) findViewById(R.id.flutes);
    flutes.addTextChangedListener(this);

    load = (EditText) findViewById(R.id.load);
    load.addTextChangedListener(this);

    feed = (EditText) findViewById(R.id.feed);
    feed.addTextChangedListener(this);




    rpm.setText("1");

    feed.setText("");
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    calculate();

}








@SuppressLint("UseValueOf")
private void calculate() {

    if (dia.getText().toString().compareTo("") == 0
            || sfm.getText().toString().compareTo("") == 0
            || rpm.getText().toString().compareTo("") == 0
            ||flutes.getText().toString().compareTo("") == 0
            ||load.getText().toString().compareTo("") == 0)

    {

        //rpm.setText("1");

        //feed.setText("1");




    }else{
        if (dia.getText().toString().compareTo(".") == 0
                || dia.getText().toString().compareTo("-") == 0
                || dia.getText().toString().compareTo("-0") == 0
                || dia.getText().toString().compareTo("-00") == 0
                || dia.getText().toString().compareTo("-000") == 0
                || dia.getText().toString().compareTo("-0000") == 0
                || dia.getText().toString().compareTo("-.") == 0


                || sfm.getText().toString().compareTo(".") == 0
                || sfm.getText().toString().compareTo("-") == 0
                || sfm.getText().toString().compareTo("-0") == 0
                || sfm.getText().toString().compareTo("-00") == 0
                || sfm.getText().toString().compareTo("-000") == 0
                || sfm.getText().toString().compareTo("-0000") == 0
                || sfm.getText().toString().compareTo("-.") == 0

                || rpm.getText().toString().compareTo("-") == 0
                || rpm.getText().toString().compareTo("-0") == 0
                || rpm.getText().toString().compareTo("-00") == 0
                || rpm.getText().toString().compareTo("-000") == 0
                || rpm.getText().toString().compareTo("-0000") == 0

                || flutes.getText().toString().compareTo("-") == 0
                || flutes.getText().toString().compareTo("-0") == 0
                || flutes.getText().toString().compareTo("-00") == 0
                || flutes.getText().toString().compareTo("-000") == 0
                || flutes.getText().toString().compareTo("-0000") == 0

                || load.getText().toString().compareTo("-") == 0
                || load.getText().toString().compareTo("-0") == 0
                || load.getText().toString().compareTo("-00") == 0
                || load.getText().toString().compareTo("-000") == 0
                || load.getText().toString().compareTo("-0000") == 0

                || feed.getText().toString().compareTo("-") == 0
                || feed.getText().toString().compareTo("-0") == 0
                || feed.getText().toString().compareTo("-00") == 0
                || feed.getText().toString().compareTo("-000") == 0
                || feed.getText().toString().compareTo("-0000") == 0)

        {


            //rpm.setText("1");

            //feed.setText("1");




        } else {
            float diam = Float.valueOf(dia.getText().toString());
            float sfmm = Float.valueOf(sfm.getText().toString());
            float rpmm = Float.valueOf(rpm.getText().toString());
            float flutesm = Float.valueOf(flutes.getText().toString());
            float loadm = Float.valueOf(load.getText().toString());

            BigDecimal trpm = new BigDecimal((sfmm *3.82 / diam));
            trpm = trpm.setScale(0,RoundingMode.UP);

            BigDecimal tfeed = new BigDecimal((rpmm * flutesm * loadm));
            tfeed = tfeed.setScale(1,RoundingMode.UP);




            rpm.setText("1"+ trpm);
            feed.setText("1"+tfeed);



        }


    }



    {



    }

   }


}

它还没有完成我需要让它能够计算 sfm 和负载是它需要编辑文本字段的原因。

我已经阅读了关于同一问题的其他问题,但它们只是在我无法应用这些想法的情况下有所不同。可能是因为我对一般编程很陌生。

希望这是开始提问的好方法。

PS 对凌乱的代码感到抱歉,希望该代码可以帮助某人向我展示如何对我当前的代码进行修复。也不要犹豫让我知道这是否太不清楚,需要 xml 等。

4

0 回答 0