代码之家  ›  专栏  ›  技术社区  ›  user3813862

如何在没有onClick的情况下更改EditText中的值?

  •  -1
  • user3813862  · 技术社区  · 11 年前

    大家好,我做了一个长度转换器应用程序。它有11个基本单位,清除和转换按钮。 以下是我的应用程序的工作原理 用户输入所需值(根据单位)点击转换按钮,获得转换值。。

    但我不想使用转换按钮(onClick)。我希望每当我输入所需的输入时,输出都会相应地更改为输入,但仍然有效。 我们将不胜感激。 这里是MainActivity.java`

    public class MainActivity extends Activity { 
    
        private EditText v1,v2,v3,v4,v5,v6,v7,v8,v9,v11,v12;
        private Button Convert; 
        private Button Reset; 
        private double val1=0,val2=0,val3=0,val4=0,val5=0,val6=0,val7=0,val8=0,val9=0,val11=0,val12=0;
    
        @Override 
        public void onCreate(Bundle savedInstanceState) 
        { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
    
        v1= ( EditText)findViewById(R.id.editText1); 
        v2= ( EditText)findViewById(R.id.editText2); 
        v3= ( EditText)findViewById(R.id.editText3); 
        v4= ( EditText)findViewById(R.id.editText4);
        v5= ( EditText)findViewById(R.id.editText5); 
        v6= ( EditText)findViewById(R.id.editTextAB); 
        v7= ( EditText)findViewById(R.id.editText7); 
        v8= ( EditText)findViewById(R.id.editText8);
        v9= ( EditText)findViewById(R.id.editText9);
        v11 = ( EditText)findViewById(R.id.editText6);
        v12= ( EditText)findViewById(R.id.editText10);
    
        Convert = (Button)findViewById(R.id.button1); 
        Reset = (Button)findViewById(R.id.button2); 
        Convert.setOnClickListener(new View.OnClickListener() 
        { 
        public void onClick(View v) 
        { 
        convertValues(); 
        } 
        } 
        ); 
    
        Reset.setOnClickListener(new View.OnClickListener() 
        { 
        public void onClick(View v) 
        { 
        reset(); 
        } 
        } 
        ); 
        } 
    
        void convertValues() 
        { 
        if (v1.getText().length() > 0 && !(v2.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0) && !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v11.getText().length() > 0)&& !(v12.getText().length() > 0) ) 
        { 
        val1=Double.parseDouble(v1.getText().toString()); 
        val2=InchToCm(val1); 
        val3=InchToMl(val1);
        val4=InchToKm(val1);
        val5=InchToM(val1);
        val6=InchToY(val1);
        val7=InchToFt(val1);
        val8=InchToLg(val1);
        val9=InchToLgn(val1);
        val11=InchTomm(val1);
        val12=InchToNm(val1);
        } 
        else if(v2.getText().length() > 0 && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0) && !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0) && !(v11.getText().length() > 0)&& !(v12.getText().length() > 0)) 
        { 
        val2=Double.parseDouble(v2.getText().toString()); 
        val1=CmToInch(val2);
        val3=CmToMl(val2);
        val4=CmToKm(val2);
        val5=CmToM(val2);
        val6=CmToY(val2);
        val7=CmToFt(val2);
        val8=CmToLg(val2);
        val9=CmToLgn(val2);
        val11=CmTomm(val2);
        val12=CmToNm(val2);
        } 
    
        else if (v3.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0) && !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0) && !(v11.getText().length() > 0)&& !(v12.getText().length() > 0))   
        { 
        val3=Double.parseDouble(v3.getText().toString()); 
        val1=MlToInch(val3);
        val2=MlToCm(val3);
        val4=MlToKm(val3);
        val5=MlToM(val3);
        val6=MlToY(val3);
        val7=MlToFt(val3);
        val8=MlToLg(val3);
        val9=MlToLgn(val3);
        val11=MlTomm(val3);
        val12=MlToNm(val3);
        }
    
    
        else if (v4.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v5.getText().length() > 0) && !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0) && !(v11.getText().length() > 0)&& !(v12.getText().length() > 0))   
        { 
        val4=Double.parseDouble(v4.getText().toString()); 
        val1=KmToInch(val4);
        val2=KmToCm(val4);
        val3=KmToMl(val4);
        val5=KmToM(val4);
        val6=KmToY(val4);
        val7=KmToFt(val4);
        val8=KmToLg(val4);
        val9=KmToLgn(val4);
        val11=KmTomm(val4);
        val12=KmToNm(val4);
        }
    
        else if (v5.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v11.getText().length() > 0)&& !(v12.getText().length() > 0) )   
        { 
        val5=Double.parseDouble(v5.getText().toString()); 
        val1=MToInch(val5);
        val2=MToCm(val5);
        val3=MToMl(val5);
        val4=MToKm(val5);
        val6=MToY(val5);
        val7=MToFt(val5);
        val8=MToLg(val5);
        val9=MToLgn(val5);
        val11=MTomm(val5);
        val12=MToNm(val5);
        }
    
        else if (v6.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v11.getText().length() > 0)&& !(v12.getText().length() > 0) )   
        { 
        val6=Double.parseDouble(v6.getText().toString()); 
        val1=YToInch(val6);
        val5=YToM(val6);
        val2=YToCm(val6);
        val3=YToMl(val6);
        val4=YToKm(val6);
        val7=YToFt(val6);
        val8=YToLg(val6);
        val9=YToLgn(val6);
        val11=YTomm(val6);
        val12=YToNm(val6);
        }
    
    
        else if (v7.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v6.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0) && !(v11.getText().length() > 0)&& !(v12.getText().length() > 0))   
        { 
        val7=Double.parseDouble(v7.getText().toString()); 
        val1=FtToInch(val7);
        val5=FtToM(val7);
        val6=FtToY(val7);
        val2=FtToCm(val7);
        val3=FtToMl(val7);
        val4=FtToKm(val7);
        val8=FtToLg(val7);
        val9=FtToLgn(val7);
        val11=FtTomm(val7);
        val12=FtToNm(val7);
        }
    
        else if (v8.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v11.getText().length() > 0)&& !(v12.getText().length() > 0) )   
        { 
        val8=Double.parseDouble(v8.getText().toString()); 
        val1=LgToInch(val8);
        val5=LgToM(val8);
        val6=LgToY(val8);
        val2=LgToCm(val8);
        val3=LgToMl(val8);
        val4=LgToKm(val8);
        val9=LgToLgn(val8);
        val7=LgToFt(val8);
        val11=LgTomm(val8);
        val12=LgToNm(val8);
        }
    
    
        else if (v9.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v11.getText().length() > 0)&& !(v12.getText().length() > 0) )   
        { 
        val9=Double.parseDouble(v9.getText().toString()); 
        val1=LgnToInch(val9);
        val5=LgnToM(val9);
        val6=LgnToY(val9);
        val2=LgnToCm(val9);
        val3=LgnToMl(val9);
        val4=LgnToKm(val9);
        val7=LgnToFt(val9);
        val8=LgnToLg(val9);
        val11=LgnTomm(val9);
        val12=LgnToNm(val9);
    
        }
        else if (v11.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v12.getText().length() > 0) )   
        { 
    
        val11=Double.parseDouble(v11.getText().toString()); 
        val1=mmToInch(val11);
        val5=mmToM(val11);
        val6=mmToY(val11);
        val2=mmToCm(val11);
        val3=mmToMl(val11);
        val4=mmToKm(val11);
        val7=mmToFt(val11);
        val8=mmToLg(val11);
        val9=mmToLgn(val11);
        val12=mmToNm(val11);
    
        }
        else if (v12.getText().length() > 0 && !(v2.getText().length() > 0) && !(v1.getText().length() > 0) && !(v3.getText().length() > 0) && !(v4.getText().length() > 0) && !(v5.getText().length() > 0)&& !(v6.getText().length() > 0)&& !(v7.getText().length() > 0)&& !(v8.getText().length() > 0)&& !(v9.getText().length() > 0)&& !(v11.getText().length() > 0) )   
        { 
        val12=Double.parseDouble(v12.getText().toString()); 
        val1=NmToInch(val12);
        val5=NmToM(val12);
        val6=NmToY(val12);
        val2=NmToCm(val12);
        val3=NmToMl(val12);
        val4=NmToKm(val12);
        val7=NmToFt(val12);
        val8=NmToLg(val12);
        val9=NmToLgn(val12);
        val11=NmTomm(val12);
    
        }
    
    
        else 
        Toast.makeText(this,"please enter a value",Toast.LENGTH_LONG).show(); 
        v1. setText(Double.toString(val1)); 
        v2. setText(Double.toString(val2)); 
        v3. setText(Double.toString(val3)); 
        v4. setText(Double.toString(val4)); 
        v5. setText(Double.toString(val5)); 
        v6. setText(Double.toString(val6)); 
        v7. setText(Double.toString(val7)); 
        v8. setText(Double.toString(val8));
        v9. setText(Double.toString(val9)); 
        v11. setText(Double.toString(val11)); 
        v12. setText(Double.toString(val12)); 
    
        } 
        double InchToCm(double val) 
        {return(val*2.54);} 
        double InchToMl(double val) 
        {return(val*1.57828e-5);} 
        double InchToM(double val) 
        {return(val*0.0254);}
        double InchToKm(double val) 
        {return(val*0.0000254);} 
        double InchToY(double val) 
        {return(val*0.027777777778 );}
        double InchToFt(double val) 
        {return(val*0.083333333333);}
        double InchToLg(double val) 
        {return(val*0.0000052609321912);}
        double InchToLgn(double val) 
        {return(val*0.0000045716342693);}
        double InchTomm(double val) 
        {return(val* 25.4 );}
        double InchToNm(double val) 
        {return(val*1.37149e-5);}
    
    
    
        double CmToInch(double val) 
        {return(val/2.54);} 
        double CmToMl(double val) 
        {return(val*6.21371e-6);} 
        double CmToFt(double val) 
        {return(val*0.03280839895);} 
        double CmToM(double val) 
        {return(val*0.01);} 
        double CmToY(double val) 
        {return(val*0.010936132983);} 
        double CmToLg(double val) 
        {return(val* 0.0000020712331461);} 
        double CmToLgn(double val) 
        {return(val* 0.0000017998560115);} 
        double CmToKm(double val) 
        {return(val*1.0e-5);} 
        double CmTomm(double val) 
        {return(val*10);} 
        double CmToNm(double val) 
        {return(val*5.3996e-6);} 
    
    
    
    
    
    
    
        double MlToCm(double val) 
        {return(val*160934);}
        double MlToInch(double val) 
        {return(val*63360);}
        double MlToLg(double val) 
        {return(val*0.33333266363);}
        double MlToY(double val) 
        {return(val*1760);}
        double MlToKm(double val) 
        {return(val*1.60934);}
        double MlToLgn(double val) 
        {return(val*0.2896587473);}
        double MlToFt(double val) 
        {return(val*5280);}
        double MlToM(double val) 
        {return(val*1609.344);}
        double MlTomm(double val) 
        {return(val*1.609e+6);}
        double MlToNm(double val) 
        {return(val*0.868976);}
    
    
    
    
    
    
        double KmToCm(double val) 
        {return(val*100000);}
        double KmToInch(double val) 
        {return(val*39370.1);}
        double KmToMl(double val) 
        {return(val*0.621371);}
        double KmToFt(double val) 
        {return(val*3280.839895);}
        double KmToY(double val) 
        {return(val*1093.6132983);}
        double KmToM(double val) 
        {return(val*1000);}
        double KmToLg(double val) 
        {return(val*0.20712331461 );}
        double KmToLgn(double val) 
        {return(val*0.17998560115);}
        double KmTomm(double val) 
        {return(val*1e+6);}
        double KmToNm(double val) 
        {return(val*0.539957);}
    
    
    
        double MToCm(double val) 
        {return(val*100);}
        double MToInch(double val) 
        {return(val*39.37007874);}
        double MToMl(double val) 
        {return(val*0.00062137119224);}
        double MToFt(double val) 
        {return(val*3.280839895);}
        double MToY(double val) 
        {return(val*1.0936132983);}
        double MToLg(double val) 
        {return(val*0.00020712331461 );}
        double MToLgn(double val) 
        {return(val* 0.00017998560115);}
        double MToKm(double val) 
        {return(val* 0.001);}
        double MTomm(double val) 
        {return(val*1000);}
        double MToNm(double val) 
        {return(val*0.000539957);}
    
    
    
    
        double YToCm(double val) 
        {return(val*91.44);}
        double YToInch(double val) 
        {return(val*36);}
        double YToMl(double val) 
        {return(val*0.00056818181818);}
        double YToFt(double val) 
        {return(val*3);}
        double YToY(double val) 
        {return(val*1.0936132983);}
        double YToLg(double val) 
        {return(val* 0.00018939355888 );}
        double YToLgn(double val) 
        {return(val* 0.00016457883369 );}
        double YToKm(double val) 
        {return(val*0.0009144);}
        double YToM(double val) 
        {return(val*0.9144 );}
        double YTomm(double val) 
        {return(val*914.4 );}
        double YToNm(double val) 
        {return(val*0.000493737 );}
    
    
        double FtToCm(double val) 
        {return(val*30.48);}
        double FtToInch(double val) 
        {return(val*12);}
        double FtToMl(double val) 
        {return(val*0.00018939393939);}
        double FtToY(double val) 
        {return(val* 0.33333333333);}
        double FtToLg(double val) 
        {return(val* 0.000063131186294 );}
        double FtToLgn(double val) 
        {return(val*0.000054859611231 );}
        double FtToKm(double val) 
        {return(val* 0.0003048);}
        double FtToM(double val) 
        {return(val*0.3048 );}
        double FtTomm(double val) 
        {return(val*304.8 );}
        double FtToNm(double val) 
        {return(val*0.000164579 );}
    
    
        double LgToCm(double val) 
        {return(val*482804.17);}
        double LgToInch(double val) 
        {return(val*190080.38189);}
        double LgToMl(double val) 
        {return(val*3.0000060273);}
        double LgToY(double val) 
        {return(val* 5280.010608);}
        double LgToLgn(double val) 
        {return(val*0.86897798776 );}
        double LgToKm(double val) 
        {return(val*4.8280417);}
        double LgToM(double val) 
        {return(val*4828.0417  );}
        double LgToFt(double val) 
        {return(val* 15840.031824);}
        double LgTomm(double val) 
        {return(val* 4828041.7);}
        double LgToNm(double val) 
        {return(val* 3);}
    
    
        double LgnToCm(double val) 
        {return(val*555600);}
        double LgnToInch(double val) 
        {return(val*218740.15748);}
        double LgnToMl(double val) 
        {return(val*3.4523383441);}
        double LgnToY(double val) 
        {return(val* 6076.1154856 );}
        double LgnToLgn(double val) 
        {return(val*0.86897798776 );}
        double LgnToKm(double val) 
        {return(val*5.556 );}
        double LgnToM(double val) 
        {return(val*5556  );}
        double LgnToFt(double val) 
        {return(val*18228.346457);}
        double LgnToLg(double val) 
        {return(val*1.150777136 );}
        double LgnTomm(double val) 
        {return(val*5.5560e+6 );}
        double LgnToNm(double val) 
        {return(val*3 );}
    
        double mmToCm(double val) 
        {return(val*0.1);}
        double mmToInch(double val) 
        {return(val*0.03937007874);}
        double mmToMl(double val) 
        {return(val*6.2137119224e-7);}
        double mmToY(double val) 
        {return(val* 0.0010936132983);}
        double mmToLgn(double val) 
        {return(val*1.7998560115e-7  );}
        double mmToKm(double val) 
        {return(val*0.000001);}
        double mmToM(double val) 
        {return(val*0.001 );}
        double mmToFt(double val) 
        {return(val* 0.003280839895 );}
        double mmToLg(double val) 
        {return(val*2.0712331461e-7 );}
        double mmToNm(double val) 
        {return(val*5.3996e-7 );}
    
    
        double NmToCm(double val) 
        {return(val*185200);}
        double NmToInch(double val) 
        {return(val*72913.4);}
        double NmToMl(double val) 
        {return(val*1.15078);}
        double NmToY(double val) 
        {return(val*2025.37);}
        double NmToLgn(double val) 
        {return(val*0.333333333  );}
        double NmToKm(double val) 
        {return(val*1.852);}
        double NmToM(double val) 
        {return(val*1852 );}
        double NmToFt(double val) 
        {return(val*6076.12 );}
        double NmToLg(double val) 
        {return(val*0.333333333 );}
        double NmTomm(double val) 
        {return(val*1.852e+6);}
    
    
        void reset() 
        { 
        v1.setText(""); 
        v2.setText(""); 
        v3.setText(""); 
        v4.setText(""); 
        v5.setText(""); 
        v6.setText(""); 
        v7.setText(""); 
        v8.setText(""); 
        v9.setText("");
        v12.setText("");
        v11.setText("");
        }
    
        } `
    
    2 回复  |  直到 11 年前
        1
  •  0
  •   Paritosh    11 年前

    您可以使用文本更改事件

    txtCM = (TextView) findViewById(R.id.txtCM);
    txtMM = (TextView) findViewById(R.id.txtMM);
    txtCM.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
            }
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Float cm = Float.parseFloat(txtCM.getText().toString());
                Float mm = cm / 10;
                txtMM.setText("" + mm);
            }
    
            @Override
            public void afterTextChanged(Editable s) {
    
            }
        });
    

    并在其中一个方法中编写代码。上图将厘米转换为毫米。

        2
  •  0
  •   Elango    11 年前

    替代选项,

    将android键盘输入按钮更改为Go或Search按钮

    例如,谷歌搜索

    XML代码

    <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:imeOptions="actionSearch"
            android:inputType="text" >
    

    java代码 editText1=(EditText)findViewById(R.id.editText1);

        editText1.setOnEditorActionListener(new OnEditorActionListener() 
        {
            @Override
            public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2)
            {
                if (arg1 == EditorInfo.IME_ACTION_SEARCH) 
                {
                    performSearch();
                    return true;
                }
                return false;
            }
        });