2017-09-11 2 views
0

나는 안드로이드 스튜디오를 처음 접했고 계산기 응용 프로그램을 만들었습니다. 숫자를 입력하고 연산자를 선택하면 텍스트보기에서 숫자가 2 텍스트보기에서 사라지고 나는 4을 누르면 다음 + 텍스트 뷰에서 사라하지만 결과가 정확 2+4을 원하는 나는, 2 다음 +을 누르면 다음 안드로이드 텍스트가 다음 입력 후 텍스트보기에서 사라짐

내 자바 코드 ...

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

      if (edt1 == null){ 
       edt1.setText(""); 
      }else { 
       mValueOne = Float.parseFloat(edt1.getText() + ""); 
       mAddition = true; 
       edt1.setText(null); 
      } 
     } 
    }); 

    buttonSub.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mValueOne = Float.parseFloat(edt1.getText() + ""); 
      mSubtract = true ; 
      edt1.setText(null); 
     } 
    }); 

    buttonMul.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mValueOne = Float.parseFloat(edt1.getText() + ""); 
      mMultiplication = true ; 
      edt1.setText(null); 
     } 
    }); 

    buttonDivision.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mValueOne = Float.parseFloat(edt1.getText()+""); 
      mDivision = true ; 
      edt1.setText(null); 
     } 
    }); 

    buttonEqual.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mValueTwo = Float.parseFloat(edt1.getText() + ""); 

      if (mAddition == true){ 

       edt1.setText(mValueOne + mValueTwo +""); 
       mAddition=false; 
      } 


      if (mSubtract == true){ 
       edt1.setText(mValueOne - mValueTwo+""); 
       mSubtract=false; 
      } 

      if (mMultiplication == true){ 
       edt1.setText(mValueOne * mValueTwo+""); 
       mMultiplication=false; 
      } 

      if (mDivision == true){ 
       edt1.setText(mValueOne/mValueTwo+""); 
       mDivision=false; 
      } 
     } 
    }); 

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

    button10.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      edt1.setText(edt1.getText()+"."); 
     } 
    }); 
} 
입니다
+0

edt1.setText (null); 버튼을 클릭 할 때마다 귀하의 가치가 사라질 것입니다. edit1.append()를 사용하여 클릭 할 때 edittext에 값을 추가하십시오. 당신이 hit =했을 때 모든 값을 얻고 –

+0

이 코드에서 append 메소드를 사용하는 방법을 조금 설명 할 수 있습니까? –

답변

0

귀하는 collecti입니다. 데이터를 올바르게 겨,하지만 당신은 당신의 EDT1 null로 설정 계속, 당신은 EDT1 + 쳤을 때 당신이이 일에 대해 동일한 EDITTEXT 필드를 사용하는 이유를 다음 항상

if (edt1 == null){ 
      edt1.setText(""); 
     } 

내가 물어 봐도 null가됩니다?

2 개의 edittext 필드를 사용하는 것이 좋습니다. 제 번호

대한 제 1 숫자

1 다음은 텍스트 뷰의 결과를 표시?

당신은 그럼 당신은 FIRST_NUMBER 및 SECOND_NUMBER 및 결과에 결과를 표시하는 데이터를 수집 할 수 있습니다 enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1"> 

    <EditText 
     android:id="@+id/first_number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="2" 
     android:layout_weight="0.40"/> 

    <EditText 
     android:id="@+id/second_number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="2" 
     android:layout_weight="0.40"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=" = " 
     android:layout_weight="0.10"/> 

    <TextView 
     android:id="@+id/result" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="4" 
     android:layout_weight="0.20"/> 

</LinearLayout> 

아래의 코드와 같은 것을 얻을 수 있습니다. 당신은 버튼을 클릭 할 때마다 null로 텍스트 편집을 설정하는

edt1.append(someString); 
0

텍스트를 추가 할 수 Append 메서드를 사용합니다. 이렇게하면 내부의 텍스트가 지워집니다. 그리고 텍스트를 추가하려면 append 메소드를 사용하십시오.

0

기존 후

관련 문제