我有这个简单的初学者android程序。 它只询问2个数字并输出2个数字的总和。
我有4个错误
1.)在行<EditText android:text=""
的 activity_plus.xml 中,它表示&#34;此文本字段未指定inputType或提示&#34;
2&amp; 3)在 plus.java 的第private void initControls()
行中
Multiple markers at this line
- Method breakpoint:Plus [entry] - initControls()
- The method initControls() from the type Plus is never
used locally
4.)当我运行程序时,我输入2个数字。然后我点击计算机错误,程序关闭。
这是我的计划:
<LinearLayout 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:orientation="vertical"
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=".Plus" >
<EditText android:id="@+id/edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<EditText android:id="@+id/add_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/add_message" />
<Button android:id="@+id/calculate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="calculate"
android:text="@string/calculate" />
<EditText android:text=""
android:id="@+id/tt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
package com.example.add;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Plus extends Activity {
EditText amount1;
EditText amount2;
TextView tt;
Button calculate;
double x=0;
double y=0;
double z=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_plus);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.plus, menu);
return true;
}
private void initControls()
{
amount1=(EditText)findViewById(R.id.edit_message);
amount2=(EditText)findViewById(R.id.add_message);
tt=(TextView)findViewById(R.id.tt);
calculate=(Button)findViewById(R.id.calculate);
calculate.setOnClickListener(new Button.OnClickListener()
{public void onClick
(View v) { calculate();}});
}
public void calculate() {
x=Double.parseDouble(amount1.getText().toString());
y=Double.parseDouble(amount2.getText().toString());
z=x+y;
tt.setText(Double.toString(z));
}
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">add</string>
<string name="action_settings">Settings</string>
<string name="edit_message">Enter number</string>
<string name="hello_world">+</string>
<string name="calculate">Compute</string>
<string name="add_message">Enter number</string>
<string name="tt">Answer</string>
</resources>
答案 0 :(得分:1)
在initControls
方法中调用oncreate
,如下所示
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_plus);
initControls();
}
答案 1 :(得分:0)
一个。在你活动的onCreate()中调用你的initControls()。
湾请在onCreate中使用clickListener而不是私有方法
calculate.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v) {
calculate();
}
});
℃。它应该是TextView而不是EditText
<EditText
android:text=""
android:id="@+id/tt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
使用此
<TextView android:id="@+id/tt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"/>
答案 2 :(得分:0)
添加:
initControls();
在您的活动的onCreate
方法
<强>更新强>
您还在xml android:onClick="calculate"
中为按钮设置了onclick属性,因此您应该使用它,将代码更改为:
private void initControls()
{
amount1=(EditText)findViewById(R.id.edit_message);
amount2=(EditText)findViewById(R.id.add_message);
tt=(TextView)findViewById(R.id.tt);
calculate=(Button)findViewById(R.id.calculate);
}
public void calculate(View view) {
x=Double.parseDouble(amount1.getText().toString());
y=Double.parseDouble(amount2.getText().toString());
z=x+y;
tt.setText(Double.toString(z));
}
所以你不需要监听器,只需将view参数添加到你的计算方法中。
答案 3 :(得分:0)
在xml文件中,您声明onclick为calculate,因此在java页面中您必须按如下所示编写
public void calculate(查看v) { }