从开始接触android,到写计算器,虽然还有许多Bug,但总算迈出了步伐
package com.example.calculator_ordman;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
/* 加法计算器:张琨,2013-9-25 版本1.1 仅仅添加了按钮,能用按钮输入单一位数和符号*/
/* 加法计算器:张琨,2013-9-25 版本1.2 能用按钮输入多位数,无法运算*/
/* 加法计算器:张琨,2013-9-26 11:35 版本1.3 仅仅加法,直接按=会出错*/
/* 四则计算器:张琨,2013-9-27 11:30 版本1.4 四则运算,直接按=正常*/
/* 四则运算器:张琨,2013-10-12 17:38 版本1.5 按键发声,小数点功能没有实现*/
/* 老人按键发声计算器:张琨 2013-10-22 11:04 版本 1.6,实现小数点,但9*1.1这类计算不出结果*/
public class MainActivity extends Activity {
public Button btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_0;
public Button btn_add,btn_jian,btn_chen,btn_chu,btn_dian,btn_equ;
public Button btn_about, btn_help,btn_res;
public String values_s = "", sum_v = "", str = "";
public int fuhao = 0;
public TextView nub_View;
private SoundPool sound_1,sound_2,sound_3,sound_4,sound_5,sound_6,sound_7,sound_8,sound_9,sound_0,
sound_add,sound_jian,sound_chen,sound_chu,sound_equ;
private int music_1,music_2,music_3,music_4,music_5,music_6,music_7,music_8,music_9,music_0,
music_add,music_jian,music_chen,music_chu,music_equ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(); //调用音频初始化方法
btn_1 = (Button)findViewById(R.id.button1);
btn_2 = (Button)findViewById(R.id.button2);
btn_3 = (Button)findViewById(R.id.button3);
btn_add = (Button)findViewById(R.id.button4);
btn_4 = (Button)findViewById(R.id.button5);
btn_5 = (Button)findViewById(R.id.button6);
btn_6 = (Button)findViewById(R.id.button7);
btn_jian = (Button)findViewById(R.id.button8);
btn_7 = (Button)findViewById(R.id.button9);
btn_8 = (Button)findViewById(R.id.button10);
btn_9 = (Button)findViewById(R.id.button11);
btn_chen = (Button)findViewById(R.id.button12);
btn_dian = (Button)findViewById(R.id.button13);
btn_0 = (Button)findViewById(R.id.button14);
btn_equ = (Button)findViewById(R.id.button15);
btn_chu = (Button)findViewById(R.id.button16);
btn_about = (Button)findViewById(R.id.button17);
btn_help = (Button)findViewById(R.id.button18);
btn_res = (Button)findViewById(R.id.button19);
nub_View = (TextView)findViewById(R.id.textView1);
btn_1.setOnClickListener(listener);
btn_2.setOnClickListener(listener);
btn_3.setOnClickListener(listener);
btn_4.setOnClickListener(listener);
btn_5.setOnClickListener(listener);
btn_6.setOnClickListener(listener);
btn_7.setOnClickListener(listener);
btn_8.setOnClickListener(listener);
btn_9.setOnClickListener(listener);
btn_0.setOnClickListener(listener);
btn_add.setOnClickListener(fu_hao);
btn_jian.setOnClickListener(fu_hao);
btn_chen.setOnClickListener(fu_hao);
btn_chu.setOnClickListener(fu_hao);
btn_dian.setOnClickListener(fu_hao);
btn_equ.setOnClickListener(fu_equ);
btn_res.setOnClickListener(fu_hao);
btn_about.setOnClickListener(about_next);
btn_help.setOnClickListener(help_next);
}
private void init() {
sound_1= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量
music_1 = sound_1.load(this, R.raw.nub1, 1); //把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级
sound_2= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_2 = sound_2.load(this, R.raw.nub2, 1);
sound_3= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_3 = sound_3.load(this, R.raw.nub3, 1);
sound_4= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_4 = sound_4.load(this, R.raw.nub4, 1);
sound_5= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_5 = sound_5.load(this, R.raw.nub5, 1);
sound_6= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_6 = sound_6.load(this, R.raw.nub6, 1);
sound_7= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_7 = sound_7.load(this, R.raw.nub7, 1);
sound_8= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_8 = sound_8.load(this, R.raw.nub8, 1);
sound_9= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_9 = sound_9.load(this, R.raw.nub9, 1);
sound_0= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_0 = sound_0.load(this, R.raw.nub0, 1);
sound_add= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_add = sound_add.load(this, R.raw.nub_add, 1);
sound_jian= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_jian = sound_jian.load(this, R.raw.nub_jian, 1);
sound_chen= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_chen = sound_chen.load(this, R.raw.nub_chen, 1);
sound_chu= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_chu = sound_chu.load(this, R.raw.nub_chu, 1);
sound_equ= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
music_equ = sound_equ.load(this, R.raw.nub_equ, 1);
}
public OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
Button btn=(Button)v;
switch (btn.getId()) {
case R.id.button1:
nub_View.setText(values_s+"1");
values_s = values_s+"1";
sound_1.play(music_1, 1, 1, 0, 0, 1);
break;
case R.id.button2:
nub_View.setText(values_s+"2");
values_s = values_s+"2";
sound_2.play(music_2, 1, 1, 0, 0, 1);
break;
case R.id.button3:
nub_View.setText(values_s+"3");
values_s = values_s+"3";
sound_3.play(music_3, 1, 1, 0, 0, 1);
break;
case R.id.button5:
nub_View.setText(values_s+"4");
values_s = values_s+"4";
sound_4.play(music_4, 1, 1, 0, 0, 1);
break;
case R.id.button6:
nub_View.setText(values_s+"5");
values_s = values_s+"5";
sound_5.play(music_5, 1, 1, 0, 0, 1);
break;
case R.id.button7:
nub_View.setText(values_s+"6");
values_s = values_s+"6";
sound_6.play(music_6, 1, 1, 0, 0, 1);
break;
case R.id.button9:
nub_View.setText(values_s+"7");
values_s = values_s+"7";
sound_7.play(music_7, 1, 1, 0, 0, 1);
break;
case R.id.button10:
nub_View.setText(values_s+"8");
values_s = values_s+"8";
sound_8.play(music_8, 1, 1, 0, 0, 1);
break;
case R.id.button11:
nub_View.setText(values_s+"9");
values_s = values_s+"9";
sound_9.play(music_9, 1, 1, 0, 0, 1);
break;
case R.id.button14:
nub_View.setText(values_s+"0");
values_s = values_s+"0";
sound_0.play(music_0, 1, 1, 0, 0, 1);
break;
}
}
};
public OnClickListener fu_hao = new OnClickListener() {
public void onClick(View v) {
Button btn=(Button)v;
switch (btn.getId()) {
case R.id.button4:
sum_v = values_s;
nub_View.setText(values_s+"+");
values_s = "";
fuhao = 1;
sound_add.play(music_add, 1, 1, 0, 0, 1);
break;
case R.id.button8:
sum_v = values_s;
nub_View.setText(values_s+"-");
values_s = "";
fuhao = 2;
sound_jian.play(music_jian, 1, 1, 0, 0, 1);
break;
case R.id.button12:
sum_v = values_s;
nub_View.setText(values_s+"×");
values_s = "";
fuhao = 3;
sound_chen.play(music_chen, 1, 1, 0, 0, 1);
break;
case R.id.button13:
sum_v = values_s;
nub_View.setText(values_s+".");
values_s = values_s+".";
break;
case R.id.button16:
sum_v = values_s;
nub_View.setText(values_s+"÷");
values_s = "";
fuhao = 4;
sound_chu.play(music_chu, 1, 1, 0, 0, 1);
break;
case R.id.button19:
values_s = "";
sum_v = "";
str = "";
nub_View.setText("欢迎使用音效计算器");
break;
}
}
};
public OnClickListener fu_equ = new OnClickListener() {
@Override
public void onClick(View arg0) {
double a= Double.parseDouble(values_s);
switch (fuhao) {
case 1:
double b=Double.parseDouble(sum_v);
str=String.valueOf(a+b);
break;
case 2:
double b2=Double.parseDouble(sum_v);
str=String.valueOf(b2-a);
break;
case 3:
double b3=Double.parseDouble(sum_v);
str=String.valueOf(a*b3);
break;
case 4:
double b4=Double.parseDouble(sum_v);
str=String.valueOf(b4/a);
break;
case 0:
break;
}
sound_equ.play(music_equ, 1, 1, 0, 0, 1);
nub_View.setText(str);
}
};
public OnClickListener about_next = new OnClickListener() {
@Override
public void onClick(View v) {
Intent about_page = new Intent();
about_page.setClass(MainActivity.this, about.class);
MainActivity.this.startActivity(about_page);
}
};
public OnClickListener help_next = new OnClickListener() {
@Override
public void onClick(View v) {
Intent help_page = new Intent();
help_page.setClass(MainActivity.this, help.class);
startActivity(help_page);
}
};
@Override
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;
}
}