有沒有辦法在Android中綁定整個片段的輸入更改事件,就像在Web中一樣,當用戶在輸入字段中更改某些內容時,我們可以爲整個表單做這些事情?如何在Android中綁定整個片段的輸入更改事件?
例如:假設我有一個Fragment,其中包含不同的輸入視圖,如TextField,CheckBox和e.t.c.我想爲所有輸入字段綁定一個輸入更改事件,並通知用戶是否在用戶界面上更改了某些內容。
有沒有辦法在Android中綁定整個片段的輸入更改事件,就像在Web中一樣,當用戶在輸入字段中更改某些內容時,我們可以爲整個表單做這些事情?如何在Android中綁定整個片段的輸入更改事件?
例如:假設我有一個Fragment,其中包含不同的輸入視圖,如TextField,CheckBox和e.t.c.我想爲所有輸入字段綁定一個輸入更改事件,並通知用戶是否在用戶界面上更改了某些內容。
我不認爲有這樣的一種方式。
當談論標準的android視圖時,很容易定義'change',但是這個概念太抽象了,不能像這樣實現,因爲'change'對於自定義組件可能不同。即使TextView有3種方法用於更改文本時。
你可以做的事情就是讓你的片段執行TextWatcher
,OnCheckedChangeListener
(和其他聽衆對其他形式的組件)和onViewCreated()
方法設定他們的意見。 在偵聽器觸發方法(onAfterTextChanged
,onChecked
等)中,您可以調用一些updateUiState()方法,它將檢查表單的當前狀態並執行所需的操作(它可以檢查是否所有文本字段都已填充以啓用提交按鈕) )。
幾乎所有組件都有偵聽器,您可以在其中處理事件。
例如,多選:
checkBox = (CheckBox)findViewById(R.id.sateliteCheckBox);
satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (isChecked){
// perform logic
}
}
});
這裏的問題是,我不想爲每個視圖綁定單獨的事件。 – karate