2011-10-08 2 views
0

레이아웃에 두 개의 EditText와 TextView가 있습니다. 다른 EditText 값과 관련하여 EditText 및 TextView 값을 변경하고 싶습니다. 그리고 다른 editText와 동일합니다. 아래 코드를 구현했습니다.두 개의 다른 EditText에 대해 두 개의 TextWatcher Listener를 넣을 수 없습니까?

amountText.setText(""); 
    excludedText.setText(""); 
    includedText.setText(""); 


    includedText.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

       if(!(includedText.getText().toString().equals(""))) 
       { 
        double included = Double.parseDouble(includedText.getText().toString()); 
        included = roundTwoDecimals(included); 
     //   double amountValue = (excluded*15/100); 

        String amt = String.valueOf(roundTwoDecimals(included-(included/1.15))); 
        String excluded = String.valueOf(included/1.15); 
        System.out.println("The Amount is: "+amt); 
        amountText.setText(amt); 
        try{ 
         excludedText.setText(""); 
         excludedText.setText(excluded); //////// Error 
        } 
        catch(Exception e) 
        { 
         e.printStackTrace(); 
        } 
       } 
       else 
       { 
        amountText.setText(""); 
        //excludedText.setText(""); 
       } 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    excludedText.addTextChangedListener(new TextWatcher() 
    { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if(!(excludedText.getText().toString().equals(""))) 
      { 
       double excluded = Double.parseDouble(excludedText.getText().toString()); 
       excluded = roundTwoDecimals(excluded); 
     //  double amountValue = (excluded*15/100); 

       String amt = String.valueOf(roundTwoDecimals(excluded*0.15)); 
       String included = String.valueOf(roundTwoDecimals(excluded+(excluded*0.15))); 
       System.out.println("The Amount is: "+amt); 
       amountText.setText(amt); 
       includedText.setText(included); 
      } 
      else 
      { 
       amountText.setText(""); 
       includedText.setText(""); 
      } 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 

하지만 응용 프로그램을 실행하는 동안 나는 stackoverflow와 같은 오류가 발생합니다.

오류 로그 캣은 : 나는 내가 잘못 곳에 잘 모릅니다

10-08 10:46:19.149: ERROR/AndroidRuntime(695): FATAL EXCEPTION: main 
10-08 10:46:19.149: ERROR/AndroidRuntime(695): java.lang.StackOverflowError 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.text.DynamicLayout.reflow(DynamicLayout.java:261) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.text.DynamicLayout.<init>(DynamicLayout.java:150) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.makeNewLayout(TextView.java:4851) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.checkForRelayout(TextView.java:5348) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2688) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$1.onTextChanged(GSTActivity.java:66) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$2.onTextChanged(GSTActivity.java:111) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$1.onTextChanged(GSTActivity.java:67) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$2.onTextChanged(GSTActivity.java:111) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$1.onTextChanged(GSTActivity.java:67) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$2.onTextChanged(GSTActivity.java:111) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$1.onTextChanged(GSTActivity.java:67) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$2.onTextChanged(GSTActivity.java:111) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$1.onTextChanged(GSTActivity.java:67) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2556) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.EditText.setText(EditText.java:75) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2531) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at com.project.TaxCalculator.GSTActivity$2.onTextChanged(GSTActivity.java:111) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.sendOnTextChanged(TextView.java:6131) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextView.setText(TextView.java:2691) 
10-08 10:46:19.149: ERROR/AndroidRuntime(695):  at android.widget.TextVie 

. .
이러한 방법을 구현하는 데 도움을주십시오. 감사합니다. .

+0

무엇이 GSTActivity에 있습니다. 66 행 ??? – viv

+0

GSTActivity는 내 앱의 활동입니다. –

답변

0

은 내가 시도 말을 무슨 뜻인지이 또한

String stringIncluded=includedText.getText().toString(); 
if(!(stringIncluded.equals(""))) 
        { 
         double included = Double.parseDouble(stringIncluded); 

하여 수행 할 수 있습니다

if(!(includedText.getText().toString().equals(""))) 
       { 
        double included = Double.parseDouble(includedText.getText().toString()); 

... 

을하고있는이

처럼 말할 코드를 여러 유형의 당신의 실행을 감소하려고 그러한 코드를 제거하면 실행 프로세스가 간소화되어 문제를 해결할 수 있습니다.

+0

문제가 해결 될까요? –

관련 문제