你可以帮我解决我的Android添加程序吗?

时间:2014-02-15 12:11:32

标签: java android xml eclipse

我有这个简单的初学者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个数字。然后我点击计算机错误,程序关闭。

这是我的计划:

activity_plus.xml

<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>

plus.java

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));
    }



}

的strings.xml

<?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>

4 个答案:

答案 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) { }