導航:首頁 > 操作系統 > android實現簡單計算器

android實現簡單計算器

發布時間:2022-08-11 23:39:41

android實現布局,實現計算器加法運算

用gridlayout很好實現,但是這個值支持4.0以上的版本,網上有一大堆例子,你可以去看看,Linearlayout也可以,不過比較繁雜

Ⅱ android中怎麼實現計算器

用代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvResult"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:height="50dp"
android:text="@string/tvResult"
/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btnBackspace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150dp"
android:layout_marginLeft="10dp"
android:text="@string/btnbackspace"/>
<Button
android:id="@+id/btnCE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150dp"
android:text="@string/btnCE"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn7"/>
<Button
android:id="@+id/btn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn8"/>
<Button
android:id="@+id/btn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn9"/>
<Button
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnDiv"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn4"/>
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn5"/>
<Button
android:id="@+id/btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn6"/>
<Button
android:id="@+id/btnMul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnMul"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn1"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn2"/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn3"/>
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnAdd"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn0"/>
<Button
android:id="@+id/btnC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnC"/>
<Button
android:id="@+id/btnEqu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnEqu"/>
<Button
android:id="@+id/btnSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnSub"/>
</LinearLayout>
</LinearLayout>

——————————————————————————————————————————————

Ⅲ 求大神用Android studio或eclise 實現一個簡易計算器,實現加減乘除就行了。急用!

1Android程序-計算器
http://www.oschina.net/code/snippet_576880_17217
2簡單計算器源代碼

http://blog.csdn.net/x605940745/article/details/11056545
3 從零開始學android實現計算器功能
http://www.jb51.net/article/46550.htm

Ⅳ 簡單寫了一個Android計算器,事件處理代碼一團糟,該如何優化

package com.wondershare.calculator; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class Calculator extends Activity { private String number1 = null; private String number2 = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText editText = (EditText) findViewById(R.id.editText); Button del = (Button) findViewById(R.id.del); del.setOnClickListener(new OnClickListener() { //有問題 @Override public void onClick(View v) { // Editable str = editText.getText(); // if(!str.equals("")){ // int length = str.length(); // str.delete(length-1, length); // editText.setText(str); // } editText.getText().clear(); } }); final Button digit0 = (Button) findViewById(R.id.digit0); digit0.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String str = (String) digit0.getText(); if (str.equals("")) { } else { editText.append(digit0.getText()); } } }); final Button digit1 = (Button) findViewById(R.id.digit1); digit1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit1.getText()); } }); final Button digit2 = (Button) findViewById(R.id.digit2); digit2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit2.getText()); } }); final Button digit3 = (Button) findViewById(R.id.digit3); digit3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit3.getText()); } }); final Button digit4 = (Button) findViewById(R.id.digit4); digit4.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit4.getText()); } }); final Button digit5 = (Button) findViewById(R.id.digit5); digit5.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit5.getText()); } }); final Button digit6 = (Button) findViewById(R.id.digit6); digit6.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit6.getText()); } }); final Button digit7 = (Button) findViewById(R.id.digit7); digit7.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit7.getText()); } }); final Button digit8 = (Button) findViewById(R.id.digit8); digit8.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit8.getText()); } }); final Button digit9 = (Button) findViewById(R.id.digit9); digit9.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(digit9.getText()); } }); final Button div = (Button) findViewById(R.id.div); div.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { number1 = editText.getText().toString(); editText.append(div.getText()); } }); final Button dot = (Button) findViewById(R.id.dot); dot.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editText.append(dot.getText()); } }); final Button equal = (Button) findViewById(R.id.equal); equal.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String str = editText.getText().toString();//文本 number2 = str.substring(number1.length()+1, str.length()); String operation = str.substring(number1.length(), number1.length()+1); float result = 0; if(operation.equals("+")){ result = Float.parseFloat(number1)+Float.parseFloat(number2); }else if(operation.equals("-")){ result = Float.parseFloat(number1)-Float.parseFloat(number2); }else if(operation.equals("×")){ result = Float.parseFloat(number1)*Float.parseFloat(number2); }else if(operation.equals("/")){ result = Float.parseFloat(number1)/Float.parseFloat(number2); } editText.setText(String.valueOf(result)); } }); final Button minus = (Button) findViewById(R.id.minus); minus.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { number1 = editText.getText().toString(); editText.append(minus.getText()); } }); final Button mul = (Button) findViewById(R.id.mul); mul.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { number1 = editText.getText().toString(); editText.append(mul.getText()); } }); final Button plus = (Button) findViewById(R.id.plus); plus.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //保存第一個操作數 number1 = editText.getText().toString(); editText.append(plus.getText()); } }); } }問題補充:謝謝您的回答,這種寫法可以避免創建過多的OnClickListener對象,並且不需要對每一個Button添加事件,不過我試了一下,還是需要重復寫很多相似的代碼(像FindViewById(),switch分支過多),感覺應該有更好的方式。另外,按照您的寫法,代碼無法工作,捕獲不到點擊事件。package com.wondershare.calculator; 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; public class Calculator extends Activity implements OnClickListener { // 操作數 private String number1 = null; private String number2 = null; // 屏幕按鍵 private Button digit0 = null; private Button digit1 = null; private Button digit2 = null; private Button digit3 = null; private Button digit4 = null; private Button digit5 = null; private Button digit6 = null; private Button digit7 = null; private Button digit8 = null; private Button digit9 = null; private Button clear = null; private Button plus = null; private Button minus = null; private Button mul = null; private Button div = null; private Button equal = null; private Button dot = null; //輸入框 private EditText editText = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 初始化屏幕按鍵 digit0 = (Button) findViewById(R.id.digit0); digit1 = (Button) findViewById(R.id.digit1); digit2 = (Button) findViewById(R.id.digit2); digit3 = (Button) findViewById(R.id.digit3); digit4 = (Button) findViewById(R.id.digit4); digit5 = (Button) findViewById(R.id.digit5); digit6 = (Button) findViewById(R.id.digit6); digit7 = (Button) findViewById(R.id.digit7); digit8 = (Button) findViewById(R.id.digit8); digit9 = (Button) findViewById(R.id.digit9); clear = (Button) findViewById(R.id.del); plus = (Button) findViewById(R.id.plus); minus = (Button) findViewById(R.id.minus); mul = (Button) findViewById(R.id.mul); div = (Button) findViewById(R.id.div); equal = (Button) findViewById(R.id.equal); dot = (Button) findViewById(R.id.dot); //初始化文本框 editText = (EditText) findViewById(R.id.editText); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.digit0: // setTextValue(String.valueOf(R.id.digit0)); editText.setText("測試"); break; case R.id.digit1: setTextValue(String.valueOf(R.id.digit1)); break; case R.id.digit2: setTextValue(String.valueOf(R.id.digit2)); break; case R.id.digit3: setTextValue(String.valueOf(R.id.digit3)); break; case R.id.digit4: setTextValue(String.valueOf(R.id.digit4)); break; case R.id.digit5: setTextValue(String.valueOf(R.id.digit5)); break; case R.id.digit6: setTextValue(String.valueOf(R.id.digit6)); break; case R.id.digit7: setTextValue(String.valueOf(R.id.digit7)); break; case R.id.digit8: setTextValue(String.valueOf(R.id.digit8)); break; case R.id.digit9: setTextValue(String.valueOf(R.id.digit9)); break; case R.id.del: // setTextValue(String.valueOf(R.id.del)); break; case R.id.plus: setTextValue(String.valueOf(R.id.plus)); break; case R.id.minus: setTextValue(String.valueOf(R.id.minus)); break; case R.id.mul: setTextValue(String.valueOf(R.id.mul)); break; case R.id.div: setTextValue(String.valueOf(R.id.div)); break; case R.id.equal: break; case R.id.dot: setTextValue(String.valueOf(R.id.dot)); break; default: break; } } /** * 當按鍵按下時設置文本框的值 * @param str */ private void setTextValue(String str){ editText.append(str); } }billyyuan 寫道給個我的習慣。
public class Calculator extends Activity implements OnClickListener { private String number1 = null; private String number2 = null; Button digit0; Button digit1; Button digit2; Button digit3; Button digit4; Button digit5; Button digit6; Button digit7; Button digit8; Button digit9; Button delete; EditText editText; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //initUI digit0 = (Button) findViewById(R.id.digit0); digit1 = (Button) findViewById(R.id.digit1); digit2 = (Button) findViewById(R.id.digit2); digit3 = (Button) findViewById(R.id.digit3); digit4 = (Button) findViewById(R.id.digit4); digit5 = (Button) findViewById(R.id.digit5); digit6 = (Button) findViewById(R.id.digit6); digit7 = (Button) findViewById(R.id.digit7); digit8 = (Button) findViewById(R.id.digit8); digit9 = (Button) findViewById(R.id.digit9); editText = (EditText)findViewById(R.id.editText); del = (Button) findViewById(R.id.del); @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ default: break; case R.id.plus: break;; case R.id.digit0: break; case R.id.digit1: break; case R.id.digit2: break; case R.id.digit3: break; case R.id.digit4: break; case R.id.digit5: break; case R.id.digit6: break; case R.id.digit7: break; case R.id.digit8: break; case R.id.digit9: break; .... } } } 問題補充:明白了,原來我只是實現了OnClickListener介面,但是按鈕沒有添加監聽,貌似這是一個很低級的錯誤啊,呵呵!另外,關於計算器的實現,我是通過字元串處理來分別得到兩個操作數的,而且為了響應按鈕事件,每一個case的setText是不可避免的,不知你所說的代碼控制要怎麼弄。有沒有更好的計算器實現方式嘞!?
billyyuan 寫道不好意思還有點沒有加上
digit0.setOnClickListener(this); digit1.setOnClickListener(this); digit2.setOnClickListener(this); digit3.setOnClickListener(this); digit4.setOnClickListener(this); digit5.setOnClickListener(this); digit6.setOnClickListener(this); digit7.setOnClickListener(this); digit8.setOnClickListener(this); 你可以把他們放在一個方法裡面
還有,那個setText你覺得有重復,那要你的代碼控制啊。
有一些可以用

Ⅳ android 寫一個簡易計算器 有人能解釋一下這段代碼嗎

大概意思:對獲取的字元進行分割,獲得初始值,然後感覺讀不下去了,感覺沒完整

Ⅵ 在android的寫一個簡易計算器,怎樣把和多個按鈕封裝起來,一起使用

bt1.setOnClickListener(new
onclicklistener());
bt2.setOnClickListener(new
onclicklistener());
bt3
.setOnClickListener(new
onclicklistener());
class
onclicklistener
implements
OnClickListener
{
//
處理控制項點擊的事件
@Override
public
void
onClick(View
v)
{
switch
(v.getId())
{
case
R.id.bt1:
//你要做的
break;
case
R.id.bt2:
//你要做的
break;
case
R.id.bt3:
//你要做的
break;}
}
}

Ⅶ android 編寫一個計算器

Android 應用程序分析之Calculator ----核心計算部分的理解和高精度運算

http://blog.csdn.net/caszhao/article/details/5986911#t1

那你可以試試看。

Ⅷ 剛接觸android,想寫個簡單的計算器。在兩個框輸入兩個數,選擇演算法按鈕,在第三個框輸出。不會了!!!

  1. 在xml的edittext中加入android:inputType="numberSigned"

  2. int 改為float比較好吧

  3. 在public void onclick(View v){

    a=Float.parsefloat(edittext1.gettext().tostring());

b=Float.parsefloat(edittext1.gettext().tostring());

switch(v.getid()){

//........還是你自己的代碼

}

edittext3.settext(""+c);

}

閱讀全文

與android實現簡單計算器相關的資料

熱點內容
servuftp命令 瀏覽:873
在什麼app上可以看到末日三問 瀏覽:770
快速解壓文件的方法是什麼 瀏覽:59
23的源碼反碼補碼 瀏覽:209
斗羅大陸斗神再臨伺服器滿了怎麼辦 瀏覽:238
付費語音問答源碼 瀏覽:117
怎麼運行伺服器上的項目html 瀏覽:228
蚌埠市鴻申特種氣體壓縮機廠 瀏覽:959
傑特康app安卓怎麼辦 瀏覽:63
中國最強的程序員 瀏覽:870
程序員和產品經理打架 瀏覽:42
男網友是程序員 瀏覽:502
表格加密密碼怎麼設置 瀏覽:27
哪個app能賺錢o 瀏覽:852
cscexe編譯實現方法 瀏覽:558
移動端側拉導航源碼 瀏覽:976
jpg演算法主要包括 瀏覽:257
網路編程方向 瀏覽:993
bitlocker加密過程休眠 瀏覽:878
androidstudio快速生成 瀏覽:690