2016-03-29 15 views
1

入力フィールドでユーザーが何か変わったときに、フォーム全体に対してこれを行うことができるウェブのように、フラグメント全体の入力変更イベントをバインドする方法はありますか?Androidでフラグメント全体の入力変更イベントをバインドするにはどうすればよいですか?

たとえば、TextField、CheckBox、e.t.cのような異なる入力ビューを含むFragmentがあるとします。すべての入力フィールドに入力変更イベントをバインドし、ユーザーまたはユーザーがUIで何かが変更されたかどうかを通知したいと思います。

答えて

2

私は、このような方法があるとは思いません。

標準的なアンドロイドビューについてのみ話すときに「変更」を定義するのは簡単ですが、そのような実装はあまりにも抽象的で、カスタムコンポーネントでは「変更」が異なる可能性があります。 TextViewには、テキストが変更されたときのための3つのメソッドがあります。

フラグメントをTextWatcherOnCheckedChangeListener(および他のフォームコンポーネントの他のリスナー)に実装し、onViewCreated()メソッドでビューを設定することです。 リスナートリガーメソッド(onAfterTextChangedonCheckedなど)では、フォームの現在の状態をチェックし、必要なアクションを実行するupdateUiState()メソッドを呼び出すことができます(すべてのテキストフィールドが入力されているかどうかを確認できます)。

0

ほとんどすべてのコンポーネントには、イベントを処理できるリスナーがあります。例えば

、チェックボックス:

checkBox = (CheckBox)findViewById(R.id.sateliteCheckBox); 

satView.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     if (isChecked){ 
       // perform logic 
     } 
    } 
}); 
+0

ここでの質問は、各ビューで別々のイベントをバインドしたくないということです。 – karate

関連する問題