2017-07-02 41 views
0

我是Android開發的初學者。我正在開發一個計算器。在這裏,我使用了一個edittext,當用戶連續點擊2個按鈕(如4 & 5)時,它只需要單個值。意味着它取代以前的價值。我想用像586 ..Edittext不需要連續2個值

這是我的Java代碼 package com.example.dellpc.calculator;

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.TextView; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    private Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,plus,minus,star,divide,equal,clear; 
    private EditText et; 
    private int first,second; 
    private String opp="+"; 
    private String ops="-"; 
    private TextView tv1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     init(); 
     methodListener(); 
    } 
    private void init() 
    { 
     btn0= (Button)findViewById(R.id.btn0); 
     btn1= (Button)findViewById(R.id.btn1); 
     btn2= (Button)findViewById(R.id.btn2); 
     btn3= (Button)findViewById(R.id.btn3); 
     btn4= (Button)findViewById(R.id.btn4); 
     btn5= (Button)findViewById(R.id.btn5); 
     btn6= (Button)findViewById(R.id.btn6); 
     btn7= (Button)findViewById(R.id.btn7); 
     btn8= (Button)findViewById(R.id.btn8); 
     btn9= (Button)findViewById(R.id.btn9); 
     plus= (Button)findViewById(R.id.btnplus); 
     minus= (Button)findViewById(R.id.btnminus); 
     star=(Button) findViewById(R.id.btnstar); 
     divide= (Button)findViewById(R.id.btndivide); 
     et = (EditText) findViewById(R.id.et); 
     tv1=(TextView)findViewById(R.id.tv1); 
    } 
    private void methodListener() { 

     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      et.setText("1"); 
       first=1; 
      } 
     }); 
     btn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("2"); 
       second=2; 
      } 
     }); 
     btn3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("3"); 
      } 
     }); 
     btn4.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("4"); 
      } 
     }); 
     btn5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("5"); 
      } 
     }); 
     btn6.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("6"); 
      } 
     }); 
     btn7.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("7"); 
      } 
     }); 
     btn8.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("8"); 
      } 
     }); 
     btn9.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       et.setText("9"); 
      } 
     }); 
     plus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       first= Integer.parseInt(et.getText().toString()); 
       tv1.setText(first+" rock"); 
       clear(); 


      } 
     }); 
     minus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       tv1.setText(first+" rock"); 
      } 
     }); 
     equal.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       second =Integer.parseInt(et.getText().toString()); 
       tv1.setText(second); 


      } 
     }); 

    } 
    void clear() 
    { 
     et.setText(""); 
    } 



} 
+0

使用'et.setText(et.getText()+「number」);'。 – Abhi

回答

0

代替et.setText("number")使用et.setText(et.getText() + "number")

0

你必須像下面的EditText設定值:

et.setText(new StringBuilder(et.getText().trim()).append("your_string")); 

例如:

et.setText(new StringBuilder(et.getText().trim()).append("1")); 
0
private void methodListener() { 
btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mEdit = (EditText)findViewById(R.id.edittext); 
      if(mEdit.getText().toString().equals(" ")) 
      { 
      et.setText("1"); 
      first=1;// I don't know why you use this. 
      } 
      else 
      { 
       String str= mEdit.getText().toString(); 
       et.setText(str+"1"); 
      } 
     } 
    }); 
//similarly for all the buttons 
} 

試試這個方法

1

EditText.setText()將取代舊的文本或將新文本設置爲EditText上

的EditText TextView的延伸,所以我們有一個名爲append屬性,所以你可以做EditText.append()所以當你輸入按鈕時,你可以將文本追加到編輯文本中。