我是初学Android应用程序开发人员。目前正在尝试构建一个简单的计算器应用程序,希望通过使用Toast显示计算结果。但是现在我无法使用toast来显示此输出。有我的代码
MainActivity.java
package com.example.calculator;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;
public class MainActivity extends Activity {
EditText input_field1,input_field2,result_field;
int result_var;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void add_numbers(View v){
input_field1= (EditText) findViewById(R.id.field1);
String no1=input_field1.getText().toString();
input_field2= (EditText) findViewById(R.id.field2);
String no2=input_field2.getText().toString();
int field1_int=Integer.parseInt(no1);
int field2_int=Integer.parseInt(no2);
result_field= (EditText) findViewById(R.id.resultfield);
result_var=field1_int+field2_int;
result_field.setText("result "+result_var);
Toast.makeText(getApplicationContext(), result_var, Toast.LENGTH_LONG).show();
}
}
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="Substract" />
<Button
android:id="@+id/divide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_toRightOf="@+id/button2"
android:text="Divide" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="105dp"
android:text="Add"
android:onClick="add_numbers" />
<EditText
android:id="@+id/field1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="22dp"
android:ems="10" />
<EditText
android:id="@+id/resultfield"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button2"
android:layout_marginTop="16dp"
android:ems="10" />
<EditText
android:id="@+id/field2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button2"
android:layout_alignLeft="@+id/button1"
android:ems="10" />
</RelativeLayout>
答案 0 :(得分:1)
问题是你需要在toast中显示一个字符串。您正在尝试显示int。最简单的方法是使用String.valueOf()
将它用String包装。
Toast.makeText(getApplicationContext(), String.valueOf(result_var), Toast.LENGTH_LONG).show();
作为一般性的注释,我们不会在变量名中使用下划线_
。最好这样命名。
EditText mInputField1,mInputField2,mResultField;
int mResultVar;
m
用于成员变量。
最好将findViewById
放入onCreate。
答案 1 :(得分:0)
result_var应该是一个字符串
String result_var="";
String Testing="testing";
Toast.makeText(getApplicationContext(), result_var+testing, Toast.LENGTH_LONG).show();
否则按照你的意思使用:
// if you have values of field1_int and field2_int
int result_var=field1_int+field2_int;
Toast.makeText(getApplicationContext(),String.valueOf(result_var), Toast.LENGTH_LONG).show();
答案 2 :(得分:0)
尝试此Toast消息必须为String
Toast.makeText(getApplicationContext(), ""+result_var, Toast.LENGTH_LONG).show();
答案 3 :(得分:0)
建议,因为你是初学者。您应该阅读您正在使用的任何方法所接受的必需参数。
例如在您的情况下。
Toast.makeText(getApplicationContext(), ""+result_var, Toast.LENGTH_LONG).show();
或者
Toast.makeText(getApplicationContext(),String.valueOf(result_var), Toast.LENGTH_LONG).show();