這個例子是在一個簡單的整型計算器應用了多點觸控:一點觸控是進行加法運算,兩點觸控是減法運算,三點觸控是乘法運算,四點觸控是除法運算。還添加了選項菜單,菜單上的內容有:退出,幫助,清空。
效果圖:
650) this.width=650;" height=430>
具體的代碼:
MainActivity.java
- package com.lingdududu.test;
- import Android.app.Activity;
- import android.app.AlertDialog;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MotionEvent;
- import android.widget.EditText;
- import android.widget.Toast;
- /**
- *
- * @author lingdududu
- * 這個程序主要是解決簡單的整形的四則運算,用戶在前兩個EditText分別輸入被除數,除數,
- * 使用多點觸控,一點觸控是進行加法運算,兩點觸控是減法運算,
- * 三點觸控是乘法運算,四點觸控是除法運算
- * 觸控之後在第三個EditText顯示結果
- */
- public class MainActivity extends Activity {
- //定義日志標簽
- private static final String Tag="System.out";
- //菜單項ID常量
- private static final int ITEM1 = Menu.FIRST;
- private static final int ITEM2 = Menu.FIRST+1;
- private static final int ITEM3 = Menu.FIRST+2;
- private static EditText firstEtx,secondEtx,resultEtx;
- //定義用戶輸入的兩個數
- int value1,value2;
- String str;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //通過findViewById方法獲得EditText實例
- firstEtx=(EditText)findViewById(R.id.text1);
- secondEtx=(EditText)findViewById(R.id.text2);
- resultEtx=(EditText)findViewById(R.id.text3);
- //計算結果輸出的EditText不可編輯
- resultEtx.setFocusable(false);
- }
- //選項菜單Option Menu
- public boolean onCreateOptionsMenu(Menu menu) {
- /*添加菜單項
- * android.R使用的是系統自帶的圖標
- */
- menu.add(0, ITEM1, 0, "退出").setIcon(android.R.drawable.ic_lock_power_off);
- menu.add(0, ITEM2, 0, "幫助").setIcon(android.R.drawable.ic_menu_help);
- menu.add(0, ITEM3, 0, "清空").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
- return true;
- }
- //覆蓋onOptionsItemSelected(MenuItem item)來響應菜單選項被單擊事件
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- //菜單項1被選擇
- case ITEM1:
- //返回主界面
- finish();
- break;
- //菜單項2被選擇
- case ITEM2:
- //在對話框AlertDialog顯示幫助信息
- AlertDialog.Builder dialog = new AlertDialog.Builder(this);
- dialog.setTitle("操作說明信息")
- .setMessage(
- " 用戶在前兩個EditText分別輸入被除數,除數。一點觸控是進行加法運算,兩點觸控是減法運算,三點觸控是乘法運算,四點觸控是除法運算。"
- +"觸摸屏幕後,在第三個EditText顯示計算的結果,當離開屏幕的時候,顯示結果的EditText被清空。"
- +"點擊Menu出現選項菜單,選擇清空能清空EditText裡面的數據,選擇退出能退出程序,回到主界面")
- .show();
- break;
- //菜單項3被選擇
- case ITEM3:
- //清空EditText的數據
- firstEtx.setText("");
- secondEtx.setText("");
- resultEtx.setText("");
- break;
- }
- return true;
- }
- public boolean onTouchEvent(MotionEvent event) {
- // TODO Auto-generated method stub
- //強制類型轉換,將String類型轉化成int類型
- value1=Integer.parseInt(firstEtx.getText().toString());
- value2=Integer.parseInt(secondEtx.getText().toString());
- //獲取觸控點的數量,比如2則可能是兩個手指同時按壓屏幕
- int num=event.getPointerCount();
- try {
- if(event.getAction()==MotionEvent.ACTION_UP){
- resultEtx.setText("");
- }
- //處理多點觸控
- else{
- //一個手指按住屏幕,進行加法運算
- if (num==1) {
- str=String.valueOf(value1+value2);
- //將計算到的結果添加到第三個EditText
- resultEtx.setText(str);
- }
- else if (num==2) {
- str=String.valueOf(value1-value2);
- //將計算到的結果添加到第三個EditText
- resultEtx.setText(str);
- }
- else if (num==3) {
- str=String.valueOf(value1*value2);
- //將計算到的結果添加到第三個EditText
- resultEtx.setText(str);
- }
- else if (num==4) {
- str=String.valueOf(value1/value2);
- //將計算到的結果添加到第三個EditText
- resultEtx.setText(str);
- }
- else {
- }
- }
- } catch (Exception e) {
- //調用Toast顯示出現異常的信息
- Toast.makeText(MainActivity.this, "請檢查你輸入的除數是否正確",Toast.LENGTH_LONG).show();
- }
- return super.onTouchEvent(event);
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="請輸入被除數"
- />
- <EditText
- android:id="@+id/text1"
- android:inputType="number"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="請輸入除數"
- />
- <EditText
- android:id="@+id/text2"
- android:inputType="number"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="計算的結果為"
- />
- <EditText
- android:id="@+id/text3"
- android:inputType="number"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- <!-- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/button"
- android:text="進行除法運算"
- /> -->
- </LinearLayout>