2016-11-12 65 views
-1

即时通讯新的android和我创建了一个简单的计算器。现在我想让它向我展示textView中的操作历史。我不知道该怎么做,有人可以帮我吗?我知道这是非常简单的编程,但我刚开始学习java和im工作在android studio。谢谢。 编辑:我发现1错误,所以我编辑主要和即时添加布局代码。简单计算器的历史 - Android

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.GridLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 


public class MainActivity extends AppCompatActivity { 

    Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bplus, bminus, bmulti, bdiv, beq, bc; 

    EditText edit1; 
    TextView hist; 

    int nr1, nr2; 

    boolean plus, minus, multi, div; 
    //List<String> history= new ArrayList<>(); 



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


     b0 = (Button) findViewById(R.id.b0); 
     b1 = (Button) findViewById(R.id.b1); 
     b2 = (Button) findViewById(R.id.b2); 
     b3 = (Button) findViewById(R.id.b3); 
     b4 = (Button) findViewById(R.id.b4); 
     b5 = (Button) findViewById(R.id.b5); 
     b6 = (Button) findViewById(R.id.b6); 
     b7 = (Button) findViewById(R.id.b7); 
     b8 = (Button) findViewById(R.id.b8); 
     b9 = (Button) findViewById(R.id.b9); 

     bplus = (Button) findViewById(R.id.bplus); 
     bminus = (Button) findViewById(R.id.bminus); 
     bmulti = (Button) findViewById(R.id.bmulti); 
     bdiv = (Button) findViewById(R.id.bdiv); 
     bc = (Button) findViewById(R.id.bc); 
     beq = (Button) findViewById(R.id.beq); 

     edit1 = (EditText) findViewById(R.id.edit1); 
     hist = (TextView) findViewById(R.id.hist); 
     //history.get(index); 



     b0.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "0"); 
      } 


     }); 

     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "1"); 
      } 

     }); 

     b2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "2"); 
      } 

     }); 

     b3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "3"); 
      } 

     }); 

     b4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "4"); 
      } 

     }); 

     b4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "4"); 
      } 

     }); 

     b5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "5"); 
      } 

     }); 

     b6.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "6"); 
      } 

     }); 

     b7.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "7"); 
      } 

     }); 
     b8.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "8"); 
      } 

     }); 

     b9.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(edit1.getText() + "9"); 
      } 

     }); 

     bplus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (edit1 == null){ 
        edit1.setText(""); 
       }else { 
        nr1 = Integer.parseInt(edit1.getText() + ""); 
        plus= true; 
        edit1.setText(null); 
       } 
      } 
     }); 

     bminus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       nr1 = Integer.parseInt(edit1.getText() + ""); 
       minus = true ; 
       edit1.setText(null); 
      } 
     }); 

     bmulti.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       nr1 = Integer.parseInt(edit1.getText() + ""); 
       multi = true ; 
       edit1.setText(null); 
      } 
     }); 

     bdiv.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       nr1 = Integer.parseInt(edit1.getText()+""); 
       div = true ; 
       edit1.setText(null); 
      } 
     }); 

     bc.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       edit1.setText(""); 
      } 
     }); 


     beq.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       nr2 = Integer.parseInt(edit1.getText() + ""); 

       double res = '0'; 

       if (plus == true){ 
        edit1.setText(nr1 + nr2+""); 
        plus=false; 
       } 


       if (minus == true){ 
        edit1.setText(nr1 - nr2+""); 
        minus=false; 
       } 

       if (multi == true){ 
        edit1.setText(nr1 * nr2+""); 
        multi=false; 
       } 

       if (div == true){ 
        edit1.setText(nr1/nr2+""); 
        div=false; 
       } 


      } 


     }); 

} 

} 

<?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" 
    android:weightSum="1"> 


    <TextView 
     android:layout_width="match_parent" 
     android:id="@+id/hist" 
     android:layout_height="100dp" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/edit1" /> 

    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.10" 
     android:id="@+id/GridLayout"> 

     <Button 
      android:text="5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b5" 
      android:layout_row="1" 
      android:layout_column="1"/> 

     <Button 
      android:text="6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b6" 
      android:layout_row="1" 
      android:layout_column="2"/> 

     <Button 
      android:text="-" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bminus" /> 

     <Button 
      android:text="7" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b7" 
      android:layout_row="2" 
      android:layout_column="0"/> 

     <Button 
      android:text="8" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b8" 
      android:layout_row="2" 
      android:layout_column="1" /> 

     <Button 
      android:text="9" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b9" 
      android:layout_row="2" 
      android:layout_column="2" /> 

     <Button 
      android:text="*" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bmulti" 
      android:layout_row="2" 
      android:layout_column="3" /> 

     <Button 
      android:text="+" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bplus" 
      android:layout_row="0" 
      android:layout_column="3" /> 

     <Button 
      android:text="3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b3" 
      android:layout_row="0" 
      android:layout_column="2" /> 

     <Button 
      android:text="4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b4" 
      android:layout_row="1" 
      android:layout_column="0" /> 

     <Button 
      android:text="0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b0" 
      android:layout_row="3" 
      android:layout_column="1" /> 

     <Button 
      android:text="2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b2" 
      android:layout_row="0" 
      android:layout_column="1" /> 

     <Button 
      android:text="1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/b1" 
      android:layout_row="0" 
      android:layout_column="0" /> 

     <Button 
      android:text="/" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bdiv" 
      android:layout_row="3" 
      android:layout_column="3" /> 

     <Button 
      android:text="=" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/beq" 
      android:layout_row="3" 
      android:layout_column="2" /> 

     <Button 
      android:text="C" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bc" 
      android:layout_row="3" 
      android:layout_column="0" /> 

    </GridLayout> 

</LinearLayout> 

回答

1

,必须先创建一个模型来存储操作的基本信息,然后就可以通过适配器到ListView添加。

0

您可以将它存储在一个数组列表中并随时随地调用。在代码

beq.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      nr2 = Integer.parseInt(edit1.getText() + ""); 

      double res; 

      if (plus == true){ 
       res = nr1 + nr2; 
       edit1.setText(nr1 + nr2+""); 
       plus=false; 
      } 


      if (minus == true){ 
       res = nr1 - nr2; 
       edit1.setText(nr1 - nr2+""); 
       minus=false; 
      } 

      if (multi == true){ 
       res = nr1 * nr2; 
       edit1.setText(nr1 * nr2+""); 
       multi=false; 
      } 

      if (div == true){ 
       res = nr1/nr2; 
       edit1.setText(nr1/nr2+""); 
       div=false; 
      } 

      history.add(String.valueOf(res); 

     } 



    }); 

通话记录somowhere:

List<String> history= new ArrayList<>(); 

添加结果到了历史上的平等按钮点击

history.get(index); //index is integer from 0 to array size 
+0

我不能在梅托德投入资源,它必须是字符串。 错误:(231,24)错误:找到的附加(双) 方法Collection.add(字符串)是不适用 没有合适的方法(自变量不匹配;双不能转换为String) 方法List.add(字符串)不适用 (参数不匹配; double不能转换为字符串) 而我该如何在我的textView中显示? TextView历史; – Paravel

+0

use history.add(String.valueOf(res); – uguboz