2016-03-24 13 views
0

は私がのEditTextの文字列を取得しようとしていますし、それがある場合にも、「私が取得したい」が、文字列を取得した後のEditText空のEditTextリターン文字列、ID

android.support.v7.widget.AppCompatEditText{42e33310 VFED..CL .F ....ID40,40-1160,315 #7f0c006f app:id\CalculatorDisplay} 

でこれを表示されていますそれをもう一度EditTextに渡します ここにはボタンを押したときに動作するonClickの一部があり、残りの部分はこの問題を処理していません。問題はTestTVで取得したときにテストしたのでNoRepeatNumberですTextView私は上記のコードを見た

public void onClick(View view) { 
    TestTV.setText("enterd "); 
    String buttonPressed = ((Button) view).getText().toString(); 
    PublicButtonPressed = buttonPressed; 
    if (DIGITS.contains(buttonPressed)) { 
     SinOrNumber=2; 
     TestTV.append("numbering"); 
     // digit was pressed 

     if (!Started) { 
      mCalculatorDisplay.setText(""); 
      TestTV.append("\nenterd setText"); 
     } else { 
      TestTV.append("\nenterd setText eslse"); 
     } 

     if (Started) { 
      OperationEnded = true; 
     } 
     if (NumberingEnded) { 
      FullNumber = String.valueOf(Number[Ni]); 
      Ni++; 
      NumberingEnded = false; 
      FullCalculation= FullNumber + " "; 
      NoRepeatNumber=""; 
      DisplayCalculations(); 
     } 
     FullNumber = FullNumber + buttonPressed; 
     Number[Ni] = Integer.parseInt(FullNumber); 
     TestTV.append("\nNumber[" + Ni + "] =" + + Number[Ni] + "\n" + "buttonPressed =" + buttonPressed + "\nFullNumber =" + FullNumber); 
     //DisplayCalculations(); 
     if ("".equals(mCalculatorDisplay)) { 

      TestTV.append("\nentered equal\"\""); 

      NoRepeatNumber=""; 
     } else { 
      if (NoRepeatNumber == "") { 
       NoRepeatNumber = String.valueOf(mCalculatorDisplay); 
       TestTV.append("\nNoRepeatNumber =" + NoRepeatNumber); 
      } 
     } 
     if(!NumberingEnded){ 
      mCalculatorDisplay.setText(NoRepeatNumber + FullNumber); 
     } 

     if (!Started) { 
      Started = true; 
     } 
     if (userIsInTheMiddleOfTypingANumber) { 

      if (buttonPressed.equals(".") && mCalculatorDisplay.getText().toString().contains(".")) { 
       // ERROR PREVENTION 
       // Eliminate entering multiple decimals 
      } else { 
       Number[Ni] = Integer.parseInt(FullNumber); 
      } 
     } 
     userIsInTheMiddleOfTypingANumber = true; 
    } else {}} 

答えて

1

コールの代わりに

私はmCalculatorDisplayがEditTextだと思いますか?

アップデート:NoRepeatNumber = String.valueOf(mCalculatorDisplay); - これが問題の一部

+0

あるそうmCalculatorDisplayが作品thatsの解決のためのEditTextのおかげですが、あなたは詳細をexplaineます2 methodes間で異なる –

+1

第1の方法は、あなたがからテキストを取得する方法ですEditText:editText.getText()は、テキストのオブジェクトラッパーを返します。そのラッパーのtoString()は文字列の形式でテキストを返します。 2番目のメソッドは、文字列表現を取得するためのStringクラスの一般的なメソッドです。内部的には、オブジェクトtoString()メソッドを呼び出します。このメソッドは、テキストを返さないEditTextであり、toString()はそのEditTextに関する情報を返します。 – khusrav

+0

ご理解いただきありがとうございます。 –