我正在尝试创建一个用户输入值的Android应用程序然后按下面的按钮。当他们按下按钮时,我希望它将编辑文本值添加到自身,然后在屏幕上显示结果。例如,如果用户在编辑文本中键入两个,当他们按下按钮时,我希望应用程序执行2 + 2,然后在屏幕上显示结果4。这是我到目前为止所拥有的......
int AnsNum;
EditText Km;
Button KmPL;
TextView Ans;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Km = (EditText) findViewById(R.id.etKm);
KmPL = (Button) findViewById(R.id.button1);
Ans = (TextView) findViewById(R.id.tvAns);
KmPL.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Km = (EditText) findViewById(R.id.etKm);
int etKm = new Integer(Km.getText().toString()).intValue();
int AnsNum = etKm+etKm;
Ans.setText(AnsNum);
}
});
}
在主java文件中......
<TextView
android:id="@+id/tvAns"
android:textSize="100dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="0" />
<EditText
android:id="@+id/etKm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Km"
android:textSize="100dp"
android:inputType="numberSigned" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="75dp"
android:text="Km per Litres" />
在main.xml文件中。然而,每当我尝试在我的手机或模拟器上运行应用程序天气时,它表示它已意外停止,请再试一次。我曾多次尝试,但它不起作用。
我知道这可能是一个愚蠢的问题,但我对编程很陌生,如果你能教会我做错了什么,它会帮助我加载。
答案 0 :(得分:0)
试试这个:
Km = (EditText) findViewById(R.id.etKm);
int etKm = Integer.parseInt(Km.getText().toString());
int AnsNum = etKm+etKm;
Ans.setText(AnsNum+"");
我通常只打印数字类型后跟+“”,因为它会转换为字符串...
我无法在这里测试,所以你需要告诉我是否有效
答案 1 :(得分:0)
我认为你的主要问题在于,当你写:
Ans.setText(AnsNum);
您正试图致电TextView.setText(int resId),这绝对不是您想要的。相反,正如Ivan Seidel所说,你应该打电话给
Ans.setText("" + AnsNum);
使用string concatenation operator将AnsNum转换为String(同样,这将由编译器优化,不使用连接运算符,而是使用StringBuilder类,因为这样更有效)。
此外,而不是:
int etKm = new Integer(Km.getText().toString()).intValue();
最好像这样调用类Integer public static Integer valueOf(String s)的静态方法:
int etKm = Integer.valueOf(Km.getText().toString());
它返回Integer objet ,它会自动转换为int类型