在Eclipse安卓开发环境中,我们可编写一个简单的计算器应用程序。以下是一个基本的代码示例,用于实现基本的四则运算:
```java public class CalculatorActivity extends AppCompatActivity { private EditText input; private Button[] buttons;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator);
input = findViewById(R.id.input); buttons = new Button[10]; for (int i = 0; i < buttons.length; i++) { buttons[i] = findViewById(R.id(buttonsId[i])); buttons[i].setOnClickListener(this); }
buttons[0].setText("7"); buttons[1].setText("8"); buttons[2].setText("9"); buttons[3].setText("+"); buttons[4].setText("-"); buttons[5].setText("*"); buttons[6].setText("/"); buttons[7].setText("4"); buttons[8].setText("5"); buttons[9].setText("6"); buttons[10].setText("."); }
@Override public void onClick(View v) { String inputText = input.getText().toString(); if (inputText.length() > 0) { input.setText(""); // Clear input field after operation switch (v.getId()) { case R.id.add: // Add button clicked input.append(String.valueOf(buttons[v.getId() - R.id.digit1].getText())); break; case R.id.sub: // Subtract button clicked input.append(buttons[v.getId() - R.id.digit2].getText()); break; case R.id.mul: // Multiply button clicked inputText += buttons[v.getId() - R.id.digit3]; // Assuming the last digit is stored in the last button of the array break; case R.id.div: // Divide button clicked try { // Prevent division by zero (unnecessary but safe) int temp = Integer.parseInt(inputText); // Extract integer part from previous operation to inputText before executing the division operation and make a temporary variable for later use (see example below) if (temp != 0) { // Only proceed if integer part is not zero for a safe division operation! This would throw an ArithmeticException and will need an appropriate error handling here (i.e., set the operation as "divide by zero") int quotient = temp / Integer.parseInt(String.valueOf(buttons[v.getId() - R.id.digit4])); // Actual division operation and append the result to inputText and/or a label if you need to see it live while programming, to track remaining operation! NOTE: Number operations here will have significant processing cost in comparison to String concatenation (unless they are one-liners with direct operation with numeric literals). Avoid excessive string concatenation! Try to convert data to a single-object-type (such as array, ArrayList, Map, List
Eclipse是一款集成开发环境(IDE),常用于开发Java应用程序,也可以用于开发安卓应用。在Eclipse环境中开发安卓应用程序,需要安装安卓 Development Tools (ADT)插件,使Eclipse得到安卓应用的开发能力。接下来将如何在Eclipse中使用ADT插件,实现开发一个简单的安卓计算器应用程序。
1. 安装ADT插件
首先需要从Eclipse的官网上下载最新版本的Eclipse IDE for Java Developers。然后从Eclipse的菜单栏中选择Help > Eclipse Marketplace,在Marketplace中检索“ADT”插件,点击安装按钮,跟随提示完成安装过程。
2. 创建安卓项目
安装完ADT插件后,就可以在Eclipse中创建一个安卓项目。选择File > New > Other,在弹出的New窗口中选择安卓 > 安卓 Project,点击Next按钮,然后填写应用程序的信息。需要指定应用程序的名称、包名和目标安卓版本等信息。在Create Activity对话框中,选择创建一个空白的Activity,命名为MainActivity。点击Finish按钮,完成安卓项目的创建。
3. 编写布局文件
在创建的安卓项目中,res/layout文件夹中会自动生成一个activity,main.xml布局文件,该文件用来定义应用程序的界面。打开该布局文件,添加一些按钮和TextView控件,构建出简单的计算器界面。该布局文件的代码如下
```
xmlns:tools=http://schemas.安卓.com/tools
安卓:layout,width=match,parent
安卓:layout,height=match,parent
安卓:paddingLeft=@dimen/activity,horizontal,margin
安卓:paddingRight=@dimen/activity,horizontal,margin
安卓:paddingTop=@dimen/activity,vertical,margin
安卓:paddingBottom=@dimen/activity,vertical,margin
tools:context=.MainActivity>
安卓:id=@+id/result
安卓:layout,width=wrap,content
安卓:layout,height=wrap,content
安卓:textSize=32sp
安卓:layout,alignParentTop=true
安卓:layout,alignParentRight=true
安卓:text=0
安卓:textColor=#000000 />
安卓:id=@+id/button1
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/result
安卓:layout,alignParentLeft=true
安卓:text=1 />
安卓:id=@+id/button2
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/result
安卓:layout,toRightOf=@id/button1
安卓:text=2 />
安卓:id=@+id/button3
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/result
安卓:layout,toRightOf=@id/button2
安卓:text=3 />
安卓:id=@+id/button4
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button1
安卓:layout,alignParentLeft=true
安卓:text=4 />
安卓:id=@+id/button5
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button2
安卓:layout,toRightOf=@id/button4
安卓:text=5 />
安卓:id=@+id/button6
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button3
安卓:layout,toRightOf=@id/button5
安卓:text=6 />
安卓:id=@+id/button7
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button4
安卓:layout,alignParentLeft=true
安卓:text=7 />
安卓:id=@+id/button8
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button5
安卓:layout,toRightOf=@id/button7
安卓:text=8 />
安卓:id=@+id/button9
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button6
安卓:layout,toRightOf=@id/button8
安卓:text=9 />
安卓:id=@+id/button0
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,below=@id/button7
安卓:layout,alignParentLeft=true
安卓:text=0 />
安卓:id=@+id/buttonAdd
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/button0
安卓:layout,toRightOf=@id/button0
安卓:text=+ />
安卓:id=@+id/buttonSubtract
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/buttonAdd
安卓:layout,toRightOf=@id/buttonAdd
安卓:text=- />
安卓:id=@+id/buttonMultiply
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/buttonSubtract
安卓:layout,toRightOf=@id/buttonSubtract
安卓:text=* />
安卓:id=@+id/buttonDivide
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/buttonMultiply
安卓:layout,toRightOf=@id/buttonMultiply
安卓:text=/ />
安卓:id=@+id/buttonEqual
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/buttonDivide
安卓:layout,toRightOf=@id/buttonDivide
安卓:text== />
安卓:id=@+id/buttonClear
安卓:layout,width=100dp
安卓:layout,height=80dp
安卓:textSize=26sp
安卓:layout,alignBaseline=@id/buttonEqual
安卓:layout,toRightOf=@id/buttonEqual
安卓:text=C />
```
4. 编写Java代码
安卓应用程序的逻辑代码主如果要实现在MainActivity.java文件中。在该文件中,需要定义各个按钮的点击事件,并将结果显示在TextView控件中。MainActivity.java文件的代码如下
```
package com.example.calculator;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Button;
import 安卓.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView result;
String numberOne = ;
String numberTwo = ;
String operator = ;
double resultNumber = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity,main);
result = (TextView) findViewById(R.id.result);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
Button button4 = (Button) findViewById(R.id.button4);
Button button5 = (Button) findViewById(R.id.button5);
Button button6 = (Button) findViewById(R.id.button6);
Button button7 = (Button) findViewById(R.id.button7);
Button button8 = (Button) findViewById(R.id.button8);
Button button9 = (Button) findViewById(R.id.button9);
Button button0 = (Button) findViewById(R.id.button0);
Button buttonAdd = (Button) findViewById(R.id.buttonAdd);
Button buttonSubtract = (Button) findViewById(R.id.buttonSubtract);
Button buttonMultiply = (Button) findViewById(R.id.buttonMultiply);
Button buttonDivide = (Button) findViewById(R.id.buttonDivide);
Button buttonEqual = (Button) findViewById(R.id.buttonEqual);
Button buttonClear = (Button) findViewById(R.id.buttonClear);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 1;
result.setText(numberOne);
} else {
numberTwo += 1;
result.setText(numberTwo);
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 2;
result.setText(numberOne);
} else {
numberTwo += 2;
result.setText(numberTwo);
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 3;
result.setText(numberOne);
} else {
numberTwo += 3;
result.setText(numberTwo);
}
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 4;
result.setText(numberOne);
} else {
numberTwo += 4;
result.setText(numberTwo);
}
}
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 5;
result.setText(numberOne);
} else {
numberTwo += 5;
result.setText(numberTwo);
}
}
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 6;
result.setText(numberOne);
} else {
numberTwo += 6;
result.setText(numberTwo);
}
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 7;
result.setText(numberOne);
} else {
numberTwo += 7;
result.setText(numberTwo);
}
}
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (operator.isEmpty()) {
numberOne += 8;
result.setText(numberOne);
} else {
numberTwo += 8;
result.setText(numberTwo);
}