2016-06-23 16 views
0

レイアウトには編集テキストとスピナーがあり、編集テキストに入力/入力するときに値が変更されていますが、問題はスピナー値を変更するとテキストが変更されないときです編集テキストに何かを入力するまで。 実際には、スピナーアイテムが変更されたときに、編集テキストに現在の値の結果を表示したい場合があります。androidでの問題

私は..私はonTextChanged機能の私のロジックを書いだって、私が何かを入力するまで、 は、私があまりにもbeforeTextChangedで同じロジックと呼ばれるが、DITのdoesntの変更私が試し

コード思う:場合

cc.input.addTextChangedListener(new TextWatcher() { 

     public void afterTextChanged(Editable s) { 


     } 

     public void beforeTextChanged(CharSequence s, int start, 
             int count, int after) { 

      aLogic(cc); 
     } 

     public void onTextChanged(CharSequence s, int start, 
            int before, int count) { 
      aLogic(cc); 
     } 
    }); 



private void aLogic(uc) { 
    ........ 
    if (subunit.equals("aa")) { 
    //something   
    } 
    if (subunit.equals("aaaaaa")) { 
    //something   
    }if (subunit.equals("aaa")) { 
    //something   
    } 
} 
+0

いや、onItemSelected didntのは初めてTextwatcherをimplemntingいて、私はtextwatcherに問題さまよった、私の心を立ち往生。 あなたの回答のための@hrskrsとIddありがとう – Mann

答えて

1

あなたがspinner値を変更すると、それはあなたがOnItemSelectedListenerを誘発することを意味します。だから、あなたはそれにあなたのロジックを実行する必要があります。

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
     // Here you change your value or do whatever you want 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
     // Here comes when you didnt choose anything from your spinner logic 
    } 

}); 
1

を私は正しく理解しています: TextView edited - > Spinnerが変更されました Spinnerで選択された要素 - > TextViewが変更されました。

だからのTextViewとスピナーのための別のリスナーのリスナー(TextWatcher)が必要です:

yourSpinner.setOnItemSelectedListener(yourListener)。

の中にtextview.setText(yourSelectedValue)があります。

しかし、私はあなたの解決策について警告します:記述した動作は、ウィジェットAutoCompleteTextViewのものです。

そうでなければ、それだけである:

yourSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      YourObject o = parent.getItemAtPosition(position); 
      aLogic(....); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
+0

何かが入力されたとき/編集テキストで入力されたときのように私はテキストウォッチャーが必要です計算された結果を表示したい、問題が私がスピナー項目を変更するとき結果が計算されません以前の結果を表示し、その編集テキストの入力を開始すると結果が表示され、何も自動完成しません。 – Mann

+0

ごめんなさい、私は誤解しています。さて、あなたが理解しているかどうかを見てみましょう:あなたのtextView-または - あなたのスピナー値が変更された場合、あなたは再びaLogic(uc)メソッドを呼び出すでしょうか? – ldd

+0

はい私は必要なものです – Mann