Как я могу получить значение компонента Android EditText в виде целого числа? - PullRequest
3 голосов
/ 20 августа 2011

Я создаю приложение, которое решает квадратичную формулу на основе пользовательских данных для A, B и C. У меня проблема.A, B и C являются целыми числами, но они должны принимать значения компонента EditText, editText1 (и 2, 3), поэтому в формуле можно запустить A, B, C.Я получаю значения?Вот мой код, где эта часть отсутствует:

    double root1=0;
    double root2=0;
    double discriminant;
    int A;
    int B;
    int C;  
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
                /** Called when the activity is first created. */
            //reset button will be a menu option

        final TextView textView6 = (TextView) findViewById(R.id.textView6);
        EditText inputA = (EditText)findViewById(R.id.editText1) ;
        EditText inputB = (EditText)findViewById(R.id.editText2);
        EditText inputC = (EditText)findViewById(R.id.editText3); 
        Button calcbutton = (Button)findViewById(R.id.calcbutton); 


        calcbutton.setOnClickListener(new View.OnClickListener() { // when calculate is clicked 

            public void onClick(View v) {
                // TODO Auto-generated method stub

                discriminant = Math.sqrt((B*B)-(4*A*C));

                if(discriminant>0){
                    root1 =  ((-B + discriminant)/2*A);
                    root2 =  ((-B - discriminant)/2*A);

                    // set textview6 to answer above    

                    textView6.setTag(root1 );
                    textView6.setTag(root2);
                    }

                if(discriminant==0){

                    root1=(int) ((-B + discriminant)/2*A);
                    textView6.setTag(root1);
                }

                if(discriminant<0){
                    textView6.setText("This equation has imaginary roots");
                    // equation has imaginary roots
                }


            }
        });
     }
}

Ответы [ 2 ]

4 голосов
/ 20 августа 2011

Если вы прочитаете документы API, вы увидите, что вы можете получить доступ к значению в EditText, используя EditText#getText().

public void onClick(View v) {
    A = Double.parseDouble(inputA.getText().toString());
    B = Integer.parseInt(inputB.getText().toString());
    C = Integer.parseInt(inputC.getText().toString());

    discriminant = Math.sqrt((B*B)-(4*A*C));
    // etc.
}
0 голосов
/ 20 августа 2011

Вы можете преобразовать string в int или другие типы, используя следующее:

 // convert text to an integer
int    number = Integer.parseInt(editText1.getText().toString());

// convert text to a double
double number = Double.parseDouble(editText1.getText().toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...