简单计算器,使用一个监听来绑定不同都事件

本文介绍了一个简易计算器应用程序的实现过程,使用Java语言和Android平台进行开发。该应用包含加、减、乘、除等基本运算功能,并通过按钮点击事件触发相应的计算逻辑。文章详细展示了如何设置UI组件、注册点击监听器以及实现数值计算的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

2

3

public class MainActivity extends ActionBarActivity {

	private OnClickListener listener;
	private EditText mEditText1, mEditText2;
	private TextView mTextView1, mTextView2;
	private Button mButton1, mButton2, mButton3, mButton4;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		mEditText1 = (EditText) findViewById(R.id.edittext1);
		mEditText2 = (EditText) findViewById(R.id.edittext2);
		mTextView1 = (TextView) findViewById(R.id.textview1);
		mTextView2 = (TextView) findViewById(R.id.textview2);
		mButton1 = (Button) findViewById(R.id.button1);
		mButton2 = (Button) findViewById(R.id.button2);
		mButton3 = (Button) findViewById(R.id.button3);
		mButton4 = (Button) findViewById(R.id.button4);

		listener = new OnClickListener() {

			@Override
			public void onClick(View v) {
				String StrTemp;
				// TODO 自动生成的方法存根
				switch (v.getId()) {
				case R.id.button1:
					if (isEmpty(mEditText1, mEditText2) == false) {
						Confirm().show();
						return;
					}
					mTextView1.setText("+");
					StrTemp = Float.toString((Float.parseFloat(mEditText1
							.getText().toString()) + (Float
							.parseFloat(mEditText2.getText().toString()))));
					mTextView2.setText(StrTemp);
					break;
				case R.id.button2:
					if (isEmpty(mEditText1, mEditText2) == false) {
						Confirm().show();
						return;
					}
					mTextView1.setText("-");
					StrTemp = Float.toString((Float.parseFloat(mEditText1
							.getText().toString()) - (Float
							.parseFloat(mEditText2.getText().toString()))));
					mTextView2.setText(StrTemp);
					break;
				case R.id.button3:
					if (isEmpty(mEditText1, mEditText2) == false) {
						Confirm().show();
						return;
					}
					mTextView1.setText("x");
					StrTemp = Float.toString((Float.parseFloat(mEditText1
							.getText().toString()) * (Float
							.parseFloat(mEditText2.getText().toString()))));
					mTextView2.setText(StrTemp);
					break;
				case R.id.button4:
					if (isEmpty(mEditText1, mEditText2) == false) {
						Confirm().show();
						return;
					}
					mTextView1.setText("/");
					StrTemp = Float.toString((Float.parseFloat(mEditText1
							.getText().toString()) / (Float
							.parseFloat(mEditText2.getText().toString()))));
					mTextView2.setText(StrTemp);
					break;
				default:
					break;
				}
			}

		};
		mButton1.setOnClickListener(listener);
		mButton2.setOnClickListener(listener);
		mButton3.setOnClickListener(listener);
		mButton4.setOnClickListener(listener);

	}

	// 封装了弹出框代码
	public AlertDialog Confirm() {
		AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
				.setTitle(R.string.confirm)
				.setMessage(R.string.content)
				.setPositiveButton(R.string.OK,
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {

							}
						}).create();

		return alert;
	}

	// 检查文本框是否为空的方法
	 public boolean isEmpty(EditText e, EditText a){
	boolean isbool;
	if(e.getText().toString().length()>0 && a.getText().toString().length()>0)
		{
		isbool= true;
		}
		else
		{
		isbool=false;
		}
		return isbool;
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值