如何提取多个edittexts值并在其中乘以值

时间:2013-06-19 12:27:14

标签: java android

我正在开发一个应用程序,我需要从2个edittexts'a','b'中提取值并将其相乘并将结果发送到另一个edittext'c'。有可能吗?请帮助我是android的新手。谢谢。

我试过如下:

    iname=(EditText)v.findViewById(R.id.editText2);  
    iname.setText(inventorylistitems.getInventoryname());
    iname.setEnabled(false);
    icost=(EditText)v.findViewById(R.id.editText3);
    icost.setText(String.valueOf(inventorylistitems.getCost()));

    eb=(EditText)v.findViewById(R.id.editText1);
    amt=(EditText)v.findViewById(R.id.editText4);
    eb.setOnKeyListener(new OnKeyListener(){

       @Override
       public boolean onKey(View v, int keyCode, KeyEvent event) {
       // TODO Auto-generated method stub
            if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER)){
                int quan=Integer.parseInt(eb.getText().toString());

            int amount=Integer.parseInt(amt.getText().toString());
            int cbf=quan*amount;
            amt.setText(String.valueOf(cbf));
            icost.setEnabled(false);
            amt.setEnabled(false);
        }
   });

2 个答案:

答案 0 :(得分:0)

您需要做的就是:

int one = Integer.parseInt(((EditText)findViewById(R.id.editText1)).getText().toString());
int two = Integer.parseInt(((EditText)findViewById(R.id.editText2)).getText().toString());
int three = one * two;
((EditText)findViewById(R.id.editText3)).setText(String.valueOf(three));//avoid ResourceNotFoundException

答案 1 :(得分:0)

try
{
     int amount=Integer.parseInt(amt.getText().toString());
}
catch (NumberFormatException e)
{
   Toast.makeText(YourClass.this, "You have entered invalid numbers", Toast.LENGTH_SHORT).show();
}

您可以将onKey()中的所有代码都包含在try/catch中,但如果输入的数字无效,则会catch异常,并显示所显示的消息。如果您愿意,也可以显示对话框,或者说在EditText中显示错误消息,记录它,无论您想做什么