资源下载路径 http://download.csdn.net/detail/qq_26296197/9264083
package com.gem.myfirstandroidapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class AddActivity extends Activity {
private TextView showView = null;
private TextView note = null;
private EditText editNum1 = null;
private EditText editNum2 = null;
private Button butAdd = null;
private Button butSub = null;
private Button butMul = null;
private Button butDiv = null;
private double num1 = 0; // 保存输入的数字
private double num2 = 0; // 保存输入的数字
private Button bt_sin;
private Button bt_cos;
private Button bt_cot;
private Button bt_tan;
private Button bt_genhao;
private Button bt_xy;
private Button bt_x2;
private Button bt_log;
private Button bt_clean;
private Button bt_madd;
private Button bt_msub;
private Button bt_mclean;
private Button bt_mrecover;
private TextView label;
String content1 = null;// 表示M+
String content2 = null;
String result1 = null;
String result2 = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
this.showView = (TextView) super.findViewById(R.id.myresult); // 取得显示结果
note = (TextView) super.findViewById(R.id.note);// 取得操作的形式
label = (TextView) findViewById(R.id.label);
// 其他操作
Button[] buttons = new Button[] { this.butAdd = (Button) super.findViewById(R.id.mybutadd), // 取得操作功能按钮
this.butSub = (Button) super.findViewById(R.id.mybutsub), // 取得操作功能按钮
this.butMul = (Button) super.findViewById(R.id.mybutmul), // 取得操作功能按钮
this.butDiv = (Button) super.findViewById(R.id.mybutdiv), // 取得操作功能按钮
bt_sin = (Button) findViewById(R.id.bt_sin), bt_cos = (Button) findViewById(R.id.bt_cos),
bt_cot = (Button) findViewById(R.id.bt_cot), bt_tan = (Button) findViewById(R.id.bt_tan),
bt_genhao = (Button) findViewById(R.id.bt_genhao), bt_xy = (Button) findViewById(R.id.bt_xy),
bt_x2 = (Button) findViewById(R.id.bt_x2), bt_log = (Button) findViewById(R.id.bt_log),
bt_clean = (Button) findViewById(R.id.bt_clean), bt_madd = (Button) findViewById(R.id.bt_madd),
bt_mclean = (Button) findViewById(R.id.bt_mclean),
bt_mrecover = (Button) findViewById(R.id.bt_mrecover),
/* bt_msub = (Button) findViewById(R.id.bt_msub), */
};
// 类型 数组里的元素 数组名
for (Button btn : buttons) {
btn.setOnClickListener(new OnClick());
}
/*
* // 下面的参数是一个 接口 View.OnClickListener的对象,所以必须先实现这个接口 加减乘除操作
* this.butAdd.setOnClickListener(new AddListener());
* this.butSub.setOnClickListener(new SubListener());
* this.butMul.setOnClickListener(new MulListener());
* this.butDiv.setOnClickListener(new DivListener());
*/
// new 子类()生成的对象 就是new 父类()子类已经实现的方法。(传的就是覆写过的父类的方法)
// 取消EditText之前的内容
EditText[] edittext = new EditText[] { this.editNum1 = (EditText) super.findViewById(R.id.myeda), // 取得输入的内容
this.editNum2 = (EditText) super.findViewById(R.id.myedb) // 取得输入的内容
};
for (EditText edt : edittext) {
edt.setOnClickListener(new OnClickEdit());
}
}
/*
* this.editNum1.setOnClickListener(new OnClickListener() { public void
* onClick(View v) { AddActivity.this.editNum1.setText(""); } });
*
* this.editNum2.setOnClickListener(new OnClickListener() {
*
* public void onClick(View v) { AddActivity.this.editNum2.setText(""); }
*
* });
*/
class OnClickEdit implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AddActivity.this.editNum1.setText("");
AddActivity.this.editNum2.setText("");
}
}
class OnClick implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.mybutadd:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.num2 = Double.parseDouble(AddActivity.this.editNum2.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" + "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(num1 + num2)); // 显示结果
break;
case R.id.mybutsub:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.num2 = Double.parseDouble(AddActivity.this.editNum2.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" - "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(num1 - num2)); // 显示结果
break;
case R.id.mybutmul:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.num2 = Double.parseDouble(AddActivity.this.editNum2.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" * "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(num1 * num2)); // 显示结果
break;
case R.id.mybutdiv:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.num2 = Double.parseDouble(AddActivity.this.editNum2.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" ÷ "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(num1 / num2)); // 显示结果
break;
case R.id.bt_sin:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" sin "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(Math.sin(num1))); // 显示结果
break;
case R.id.bt_cos:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" cos "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(Math.cos(num1))); // 显示结果
break;
case R.id.bt_tan:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" tan "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(Math.tan(num1))); // 显示结果
break;
case R.id.bt_cot:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" cot "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(1 / (Math.tan(num1)))); // 显示结果
break;
case R.id.bt_genhao:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" √ "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(Math.sqrt(num1))); // 显示结果
break;
case R.id.bt_xy:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.num2 = Double.parseDouble(AddActivity.this.editNum2.getText().toString()); // 取得第二个数字
AddActivity.this.note.setText(" x^y "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(Math.pow(num1, num2))); // 显示结果
break;
case R.id.bt_x2:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" x^2 "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf(num1 * num1)); // 显示结果
break;
case R.id.bt_log:
AddActivity.this.num1 = Double.parseDouble(AddActivity.this.editNum1.getText().toString()); // 取得第一个数字
AddActivity.this.note.setText(" log "); // 更新操作的符号
AddActivity.this.showView.setText(String.valueOf((Math.log10(num1)))); // 显示结果
break;
case R.id.bt_clean:
AddActivity.this.editNum1.setText("");
AddActivity.this.editNum2.setText("");
AddActivity.this.showView.setText("");
AddActivity.this.note.setText("");
break;
case R.id.bt_madd:
content1 = AddActivity.this.showView.getText().toString();
AddActivity.this.label.setText(" M+ "); // 更新操作的符号
break;
/*
* case R.id.bt_msub: content2 =
* AddActivity.this.editNum1.getText().toString();
* result2=String.valueOf(Double.parseDouble(content1)-Double.
* parseDouble(content2));
*
* break;
*/
case R.id.bt_mrecover:
AddActivity.this.editNum1.setText(content1);
break;
case R.id.bt_mclean:
content1 = null;
AddActivity.this.label.setText(" "); // 更新操作的符号
break;
}
}
}
/*
* private class AddListener implements OnClickListener {
*
* public void onClick(View v) { AddActivity.this.num1 =
* Double.parseDouble(AddActivity.this.editNum1.getText().toString()); //
* 取得第一个数字 AddActivity.this.num2 =
* Double.parseDouble(AddActivity.this.editNum2.getText().toString()); //
* 取得第一个数字 AddActivity.this.note.setText(" + "); // 更新操作的符号
* AddActivity.this.showView.setText(String.valueOf(num1 + num2)); // 显示结果 }
* // 加法操作
*
* }
*
* private class SubListener implements OnClickListener {
*
* public void onClick(View v) { AddActivity.this.num1 =
* Double.parseDouble(AddActivity.this.editNum1.getText().toString()); //
* 取得第一个数字 AddActivity.this.num2 =
* Double.parseDouble(AddActivity.this.editNum2.getText().toString()); //
* 取得第一个数字 AddActivity.this.note.setText(" - "); // 更新操作的符号
* AddActivity.this.showView.setText(String.valueOf(num1 - num2)); // 显示结果 }
* // 减法操作
*
* }
*
* private class MulListener implements OnClickListener {
*
* public void onClick(View v) { AddActivity.this.num1 =
* Double.parseDouble(AddActivity.this.editNum1.getText().toString()); //
* 取得第一个数字 AddActivity.this.num2 =
* Double.parseDouble(AddActivity.this.editNum2.getText().toString()); //
* 取得第一个数字 AddActivity.this.note.setText(" * "); // 更新操作的符号
* AddActivity.this.showView.setText(String.valueOf(num1 * num2)); // 显示结果 }
* // 乘法操作
*
* }
*
* private class DivListener implements OnClickListener {
*
* public void onClick(View v) { AddActivity.this.num1 =
* Double.parseDouble(AddActivity.this.editNum1.getText().toString()); //
* 取得第一个数字 AddActivity.this.num2 =
* Double.parseDouble(AddActivity.this.editNum2.getText().toString()); //
* 取得第一个数字 AddActivity.this.note.setText(" ÷ "); // 更新操作的符号
* AddActivity.this.showView.setText(String.valueOf(num1 / num2)); // 显示结果 }
* // 除法操作
*
* }
*/
/*
* private class SinListener implements OnClickListener {
*
* @Override public void onClick(View v) { // TODO Auto-generated method
* stub AddActivity.this.num1 =
* Double.parseDouble(AddActivity.this.editNum1.getText().toString()); //
* 取得第一个数字 AddActivity.this.note.setText(" sin "); // 更新操作的符号
* AddActivity.this.showView.setText(String.valueOf(Math.sin(num1))); //
* 显示结果
*
* }// sin操作 }
*/
}
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".AddActivity" >
android:layout_height="wrap_content"
android:orientation="vertical" >
android:layout_width="188dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:digits="0123456789."
android:gravity="center"
android:hint="@string/input1" />
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_width="190dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:digits="0123456789."
android:gravity="center"
android:hint="@string/input2" />
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="@string/equal"
android:textSize="28sp" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="30dp"
android:text="@string/result"
android:textSize="16sp" />
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sin" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/cos" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/tan" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/cot" />
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genhao" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/xy" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/x2" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/log" />
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/madd" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/mclean" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/mrecover" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/clean" />