如何从另一个视图获取值并在同一活动中使用它?

时间:2018-08-16 11:42:43

标签: java android

嗨,我想编写一个简单的应用程序来计算三角形的面积,我希望用户在Edittext视图中设置三角形的高度和底边,然后单击button在下面的Edittext视图中显示结果,但是我的应用程序崩溃了。 这是我的代码: java code

java code

public class Activity2 extends AppCompatActivity {
TextView txtmasahat;
EditText edttext_ghaede;
EditText edttext_ertefa;
Button btnmosalas;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2);
    txtmasahat=(TextView) findViewById(R.id.txtmasahat) ;
    btnmosalas=(Button)findViewById(R.id.btnmosalas);
    edttext_ertefa=(EditText)findViewById(R.id.edttext_ertefa);
    edttext_ghaede=(EditText)findViewById(R.id.edttext_ghaede);

    btnmosalas.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            int input1=edttext_ghaede.getInputType();
            int input2=edttext_ertefa.getInputType();
            double masahat=input1*input2/2;






        }
    });

6 个答案:

答案 0 :(得分:1)

我认为这段代码将为您提供帮助。

  btnmosalas.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String input1=edttext_ghaede.getText().toString();
            String input2=edttext_ertefa.getText().toString();

            if(!TextUtils.isEmpty(input1)&&!TextUtils.isEmpty(input2))
           {
            Integer 

                  Integer      masahat=Integer.parseInt(input1)*Integer.parseInt(input2)/2;
            }

    });

答案 1 :(得分:1)

.getInputType()不返回您期望的int值。您可以改用以下代码

public class Activity2 extends AppCompatActivity {
TextView txtmasahat;
EditText edttext_ghaede;
EditText edttext_ertefa;
Button btnmosalas;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2);
    txtmasahat=(TextView) findViewById(R.id.txtmasahat) ;
    btnmosalas=(Button)findViewById(R.id.btnmosalas);
    edttext_ertefa=(EditText)findViewById(R.id.edttext_ertefa);
    edttext_ghaede=(EditText)findViewById(R.id.edttext_ghaede);

    btnmosalas.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String input1Str=edttext_ghaede.getText().toString();
            String input2Str=edttext_ertefa.getText().toString();
            int input1 = Integer.parseInt(input1Str);
            int input2 = Integer.parseInt(input2Str);
            double masahat=input1*input2/2;






        }
    });

答案 2 :(得分:1)

int input1=edttext_ghaede.getInputType();

您不需要的是getInputType()。您需要使用getText().toString()从该`EditText'中检索数据。

此外,您需要将获得的String转换为Integer。为此,完整的语句将变为:

Integer.parseInt(edttext_ghaede.getText().toString());

祝你好运。

答案 3 :(得分:1)

 edttext_ertefa=(EditText)findViewById(R.id.edttext_ertefa);
    edttext_ghaede=(EditText)findViewById(R.id.edttext_ghaede);

    btnmosalas.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            int input1=Integer.parseInt(edttext_ghaede.getText().toString().trim());
            int input2=Integer.parseInt(edttext_ertefa..getText().toString().trim());
            double masahat= input1 * input2/2;
        }
    });

也将其设置为您的xml ....

android:inputType="number"

答案 4 :(得分:0)

 int input1=Integer.parseInt(edttext_ghaede.getText().toString());

答案 5 :(得分:0)

使用

从edittext获取值
int input1=Integer.parseInt(eedttext_ertefa.getText().toString());

代替

 int input1=edttext_ghaede.getInputType();
  

InputType用于限制用户输入文本/数字   像下面的代码设置输入类型编号。

editText.setInputType(EditorInfo.TYPE_CLASS_NUMBER);