如果你想了解更多关于Android的知识,可以点击:Android手册
这个小项目除了要我们活用按钮的组之外,也示范如何利用同一个监听处理不同事件然后与TextView的文字作出相应的变化废话不多说。
这个项目最直接的处理办法就是每一个按钮设置一个监听事件然後在每一个事件上处理即可,没错。这个办法是可行的但最后我们看到的代码是不是很不优雅,有很多重复的操作?所以我们想到了用一个监听事件来处理不同的事件。那要怎么做呢?跟着我一起来做吧大概代码如下:声明一个点击的监听事件。
private OnClickListener listener; listener= new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.Button01: 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.Button02: 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.Button03: 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.Button04: 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; } } };
代码简单明了,通过getid()这个方法可以得到相应的按钮,之后处理。OK 代码大致上是这样,之后设置按钮的单击事件
mButton1.setOnClickListener(listener); mButton2.setOnClickListener(listener); mButton3.setOnClickListener(listener); mButton4.setOnClickListener(listener);
代码里面也顺便封装了弹出提出框代码如下:
public AlertDialog Confirm() { alert=new AlertDialog.Builder(SimpleCalc.this) .setTitle(R.string.confirm) .setMessage(R.string.content) .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .create(); return alert; }
到此为止一个简单的计算器己经完成,下次我们将把按钮全都放在屏幕 上再利用事件传递的方法来完成 ,通过点击按钮数字来计算,相信有看到这一篇的朋友知道应该知道怎么做了。
以上是android經典簡單小項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!