如何纳入EDITTEXT&放点操作;退格为Android应用程序的计算器 [英] how to include dot operator in Edittext & Backspace for android calculator application
问题描述
我是初学java,我决定做简单的安卓计算器当我运行此code退格不工作,让我帮忙解决this.what我错了。
我还需要帮助如何在的EditText
添加点运算符,我怎么能写出code执行浮点加法。
包com.tools.calculator;
进口android.R.string;
进口android.os.Bundle;
进口android.app.Activity;
进口android.text.Editable;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.TextView;公共类MainActivity延伸活动{ 公共字符串str =;
字符运算=Q;
INT I,NUM,numtemp; 的EditText showResult; @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
showResult =(EditText上)findViewById(R.id.editText1);
}
公共无效一(视图v){
插入(1);
}
公共无效两(视图v){
插入(2);
}
公共无效三(视图V){
插入(3);
}
公共无效四(视图v){
插入(4);
}
公共无效五(视图v){
(5)接入;
}
公共无效六(视图v){
插入(6);
}
公共无效七(视图v){
插入(7);
}
公共无效八(视图v){
插入(8);
}
公共无效九(视图v){
插入(9);
}
公共无效零(视图v){
(0)接入;
}
公共无效点(视图V)
{
/ * ---- FOR ********需要帮助包括点操作***** ------ * /
}
公共无效加(视图v){
执行();
运='+';
showResult.setText();
}
公共无效减号(视图v){
执行();
运=' - ';
showResult.setText(); }
公共无效鸿沟(视图v){
执行();
运='/';
showResult.setText();
}
公共无效乘法(视图v){
执行();
运='*';
showResult.setText();
}
公共无效相等(视图v){
//计算数
计算(); }
公共无效退格(视图V)
{/ * --------------------- BackSpace键功能------------------- * /
showResult.setText(STR);
。字符串str = showResult.getText()的toString();
如果(str.length()→1){ 海峡= str.substring(0,str.length() - 1);
showResult.setText(STR);
}否则如果(str.length()< = 1){
showResult.setText();
/ * --------------------- BackSpace键功能------------------- * /
}
}
公共无效CLR(视图v){
重置();
}
私人无效复位(){
/ * ---------------------复位的EditText ------------------- * /
海峡=;
运=Q;
NUM = 0;
numtemp = 0;
showResult.setText();
/ * ---------------------复位的EditText ------------------- * /
} 私人无效插入(诠释J){
//通过点击按钮插入值
海峡= STR + Integer.toString(J);
NUM = Integer.valueOf(STR).intValue();
showResult.setText(STR);
} 私人无效执行(){
//移动变量临时寄存器
海峡=;
numtemp = NUM;
}
私人无效计算(){
//计算过程
如果(OP =='+')
numtemp = numtemp + NUM;
否则,如果(OP ==' - ')
numtemp = numtemp-NUM;
否则,如果(OP =='/')
numtemp = numtemp / NUM;
否则如果(运=='*')
numtemp = numtemp * NUM;
showResult.setText(+ numtemp);
海峡=;
}
公共布尔onCreateOptionsMenu(菜单菜单){
//充气菜单;如果是present这增加了项目操作栏。
。getMenuInflater()膨胀(R.menu.main,菜单);
返回true;
}
}
布局文件
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:paddingLeft =@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=。MainActivity
机器人:背景=#333333> <按钮
机器人:ID =@ + ID /按钮2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID /按钮1
机器人:layout_toRightOf =@ + ID /按钮1
机器人:文字=@字符串/零
安卓的onClick =零/> <按钮
机器人:ID =@ + ID /按钮3
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID /按钮2
机器人:layout_alignBottom =@ + ID /按钮2
机器人:layout_toRightOf =@ + ID /按钮2
机器人:文字=@字符串/平等
安卓的onClick =等于/> <按钮
机器人:ID =@ + ID / button5
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID /将Button4
机器人:layout_alignBottom =@ + ID /将Button4
机器人:layout_alignLeft =@ + ID /按钮2
机器人:文字=@字符串/两个
安卓的onClick =两节/> <按钮
机器人:ID =@ + ID / button6
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button5
机器人:layout_toRightOf =@ + ID / button5
机器人:文字=@字符串/三
安卓的onClick =三/> <按钮
机器人:ID =@ + ID / button7
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignLeft =@ + ID /将Button4
机器人:layout_centerVertical =真
机器人:文字=@字符串/四
安卓的onClick =四个一/> <按钮
机器人:ID =@ + ID /按钮8
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button7
机器人:layout_alignLeft =@ + ID / button5
机器人:文字=@字符串/五
安卓的onClick =十二五/> <按钮
机器人:ID =@ + ID /按钮9
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_centerVertical =真
机器人:layout_toRightOf =@ + ID /按钮8
机器人:文字=@字符串/六个一
安卓的onClick =六个一/> <按钮
机器人:ID =@ + ID / button10
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_above =@ + ID / button7
机器人:layout_alignLeft =@ + ID / button7
机器人:layout_marginBottom =14dp
机器人:文字=@字符串/七
安卓的onClick =七/> <按钮
机器人:ID =@ + ID / button11
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button10
机器人:layout_alignLeft =@ + ID /按钮8
机器人:文字=@字符串/八
安卓的onClick =八/> <按钮
机器人:ID =@ + ID / button12
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button11
机器人:layout_toRightOf =@ + ID / button11
机器人:文字=@字符串/九
安卓的onClick =九/> <按钮
机器人:ID =@ + ID /将Button4
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / button7
机器人:layout_marginTop =15dp
机器人:layout_toLeftOf =@ + ID / button5
机器人:文字=@字符串/一
安卓的onClick =一/> <按钮
机器人:ID =@ + ID / button17
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_above =@ + ID / button12
机器人:layout_alignParentRight =真
机器人:layout_marginBottom =18dp
机器人:文字=@字符串/ CLR
安卓的onClick =CLR/> <按钮
机器人:ID =@ + ID / button13
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID / button12
机器人:layout_alignBottom =@ + ID / button12
机器人:layout_alignParentRight =真
机器人:文字=@字符串/加
安卓的onClick =加/> <按钮
机器人:ID =@ + ID / button14
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID /按钮9
机器人:layout_alignBottom =@ + ID /按钮9
机器人:layout_alignLeft =@ + ID / button13
机器人:文字=@字符串/子
安卓的onClick =减/> <按钮
机器人:ID =@ + ID / button15
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button6
机器人:layout_alignParentRight =真
机器人:文字=@字符串/ MUL
安卓的onClick =正片叠底/> <按钮
机器人:ID =@ + ID / button16
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBaseline =@ + ID /按钮3
机器人:layout_alignBottom =@ + ID /按钮3
机器人:layout_alignLeft =@ + ID / button15
机器人:文字=@字符串/格
安卓的onClick =鸿沟/> <的EditText
机器人:ID =@ + ID / editText1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignBottom =@ + ID / button17
机器人:layout_alignLeft =@ + ID / button10
机器人:layout_alignTop =@ + ID / button17
机器人:背景=#FFFFFF
机器人:EMS =10
安卓的inputType =号/> <按钮
机器人:ID =@ + ID /按钮1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentLeft =真
机器人:layout_below =@ + ID / button5
机器人:layout_marginLeft =18dp
机器人:layout_marginTop =20dp
机器人:文字=@字符串/点
安卓的onClick =点/> <按钮
机器人:ID =@ + ID / button18
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_above =@ + ID / button17
机器人:layout_alignLeft =@ + ID / button17
机器人:layout_marginBottom =10dp
机器人:文字=@字符串/退格/>< / RelativeLayout的>
XML文件###
<?XML版本=1.0编码=UTF-8&GT?;
<资源> <字符串名称=APP_NAME>计算器和LT; /串>
<字符串名称=action_settings>设置< /串>
<字符串名称=参考hello world>< /串>
<字符串名称=点方式>< /串>
<字符串名称=一> 1 LT; /串>
<字符串名称=两化> 2'; /串>
<字符串名称=三>第3版; /串>
<字符串名称=四个一> 4℃; /串>
<字符串名称=十二五> 5℃/串>
<字符串名称=六个一> 6≤/串>
<字符串名称=七> 7 LT; /串>
<字符串名称=八> 8示/串>
<字符串名称=九> 9< /串>
<字符串名称=零> 0℃; /串>
<字符串名称=添加&GT + LT; /串>
<字符串名称=亚健康> - < /串>
<字符串名称=MUL> * LT; /串>
<字符串名称=格> /< /串>
<字符串名称=等于> = LT; /串>
<字符串名称=退格>&放大器; LT; - < /串>
<字符串名称=CLR>&CLR LT; /串>
< /资源>
您code是可怕的(每一把手的方法?),看着你的插入
方法,你应该做一些修改。
私人无效插入(诠释J){
//通过点击按钮插入值
海峡= STR + Integer.toString(J);
NUM = Integer.valueOf(STR).intValue();
showResult.setText(STR);
}
首先:
- 您应该使用
双。* </ code>方法,因为
整数
不能有浮动值。 - 我没有看到任何code这做数学题,所以你应该做的编辑。
然后,使点
方法,你可能只是做
私人无效插入(){
//通过点击按钮插入值
海峡= STR +0;
NUM = Double.valueOf(STR);
showResult.setText(STR);
}
这是你应该做的支持点。
无论如何,你可以得到删除 .intValue()
从 Integer.valueOf(STR).intValue()
I'm a java beginner,I decided to made simple android calculator When i run this code Bksp doesn't work,let me help to solve this.what i'm wrong.
i also need a help how to adding a dot operator in EditText
and how can i write the code to perform floating addition.
package com.tools.calculator;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
public String str ="";
Character op = 'q';
int i,num,numtemp;
EditText showResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showResult = (EditText) findViewById(R.id.editText1);
}
public void one(View v){
insert(1);
}
public void two(View v){
insert(2);
}
public void three(View v){
insert(3);
}
public void four(View v){
insert(4);
}
public void five(View v){
insert(5);
}
public void six(View v){
insert(6);
}
public void seven(View v){
insert(7);
}
public void eight(View v){
insert(8);
}
public void nine(View v){
insert(9);
}
public void zero(View v){
insert(0);
}
public void dot(View v)
{
/*----******** NEED HELP FOR INCLUDE THE DOT OPERATOR*****------*/
}
public void plus(View v){
perform();
op = '+';
showResult.setText("");
}
public void minus(View v){
perform();
op = '-';
showResult.setText("");
}
public void divide(View v){
perform();
op = '/';
showResult.setText("");
}
public void multiply(View v){
perform();
op = '*';
showResult.setText("");
}
public void equal(View v){
//Calculate the numbers
calculate();
}
public void Bksp(View v)
{ /* --------------------- BackSpace function------------------- */
showResult.setText(str);
String str = showResult.getText().toString();
if(str.length()>1){
str = str.substring(0, str.length() - 1);
showResult.setText(str);
}else if(str.length()<=1){
showResult.setText("");
/* --------------------- BackSpace function------------------- */
}
}
public void CLR(View v){
reset();
}
private void reset() {
/* --------------------- Reset the EditText------------------- */
str ="";
op ='q';
num = 0;
numtemp = 0;
showResult.setText("");
/* --------------------- Reset the EditText------------------- */
}
private void insert(int j) {
//Insert the values by clicking button
str = str+Integer.toString(j);
num = Integer.valueOf(str).intValue();
showResult.setText(str);
}
private void perform() {
// move the variable to temporary register
str = "";
numtemp = num;
}
private void calculate() {
// Calculation process
if(op == '+')
numtemp = numtemp+num;
else if(op == '-')
numtemp = numtemp-num;
else if(op == '/')
numtemp = numtemp/num;
else if(op == '*')
numtemp = numtemp*num;
showResult.setText(""+numtemp);
str = "";
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
LAYOUT FILE
<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"
android:background="#333333">
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="@string/zero"
android:onClick="zero" />
<Button
android:id="@+id/button3"
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="@string/equal"
android:onClick="equal" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button4"
android:layout_alignBottom="@+id/button4"
android:layout_alignLeft="@+id/button2"
android:text="@string/two"
android:onClick="two" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button5"
android:layout_toRightOf="@+id/button5"
android:text="@string/three"
android:onClick="three" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button4"
android:layout_centerVertical="true"
android:text="@string/four"
android:onClick="four" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button7"
android:layout_alignLeft="@+id/button5"
android:text="@string/five"
android:onClick="five"/>
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/button8"
android:text="@string/six"
android:onClick="six" />
<Button
android:id="@+id/button10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button7"
android:layout_alignLeft="@+id/button7"
android:layout_marginBottom="14dp"
android:text="@string/seven"
android:onClick="seven"/>
<Button
android:id="@+id/button11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button10"
android:layout_alignLeft="@+id/button8"
android:text="@string/eight"
android:onClick="eight"/>
<Button
android:id="@+id/button12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button11"
android:layout_toRightOf="@+id/button11"
android:text="@string/nine"
android:onClick="nine" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button7"
android:layout_marginTop="15dp"
android:layout_toLeftOf="@+id/button5"
android:text="@string/one"
android:onClick="one" />
<Button
android:id="@+id/button17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button12"
android:layout_alignParentRight="true"
android:layout_marginBottom="18dp"
android:text="@string/CLR"
android:onClick="CLR"/>
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button12"
android:layout_alignBottom="@+id/button12"
android:layout_alignParentRight="true"
android:text="@string/add"
android:onClick="plus" />
<Button
android:id="@+id/button14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button9"
android:layout_alignBottom="@+id/button9"
android:layout_alignLeft="@+id/button13"
android:text="@string/sub"
android:onClick="minus" />
<Button
android:id="@+id/button15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button6"
android:layout_alignParentRight="true"
android:text="@string/mul"
android:onClick="multiply" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3"
android:layout_alignLeft="@+id/button15"
android:text="@string/div"
android:onClick="divide" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button17"
android:layout_alignLeft="@+id/button10"
android:layout_alignTop="@+id/button17"
android:background="#ffffff"
android:ems="10"
android:inputType="number" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button5"
android:layout_marginLeft="18dp"
android:layout_marginTop="20dp"
android:text="@string/dot"
android:onClick="dot" />
<Button
android:id="@+id/button18"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button17"
android:layout_alignLeft="@+id/button17"
android:layout_marginBottom="10dp"
android:text="@string/Bksp" />
</RelativeLayout>
XML FILE ###
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Calculator</string>
<string name="action_settings">Settings</string>
<string name="hello_world"></string>
<string name="dot">.</string>
<string name="one">1</string>
<string name="two">2</string>
<string name="three">3</string>
<string name="four">4</string>
<string name="five">5</string>
<string name="six">6</string>
<string name="seven">7</string>
<string name="eight">8</string>
<string name="nine">9</string>
<string name="zero">0</string>
<string name="add">+</string>
<string name="sub">-</string>
<string name="mul">*</string>
<string name="div">/</string>
<string name="equal">=</string>
<string name="Bksp"><--</string>
<string name="CLR">CLR</string>
</resources>
Your code is horrible (one method per number?), looking your insert
method you should do some edits.
private void insert(int j) {
//Insert the values by clicking button
str = str+Integer.toString(j);
num = Integer.valueOf(str).intValue();
showResult.setText(str);
}
First:
- You should use
Double.*
methods becauseInteger
cannot have float values. - I don't see any code which do the math so you should do the edits.
Then, to make the dot
method you could just do it
private void insert() {
//Insert the values by clicking button
str = str+".0";
num = Double.valueOf(str);
showResult.setText(str);
}
It's what you should do to support dot.
Anyway, you can get remove .intValue()
from Integer.valueOf(str).intValue()
这篇关于如何纳入EDITTEXT&放点操作;退格为Android应用程序的计算器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!