setOnFocusChangeListenerを使用してSQLiteDatabaseに保存するいくつかのEditTextフィールドがあります。私はonFocusChangeListenerを個別に設定する必要がありますか、またはある種のキャッチオールがありますか? (getActivity()。findViewByIDが、これはフラグメントであるため)すべてのEditTextのEditText setOnFocusChangeListener
final TextView txtName = (TextView)getActivity().findViewById(R.id.clientHeader);
final TextView txtCompany = (TextView)getActivity().findViewById(R.id.txtContactCompany);
final TextView txtPosition = (TextView)getActivity().findViewById(R.id.txtContactPosition);
txtName.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "name", txtName.getText().toString());
}
}
});
txtCompany.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "company", txtCompany.getText().toString());
}
}
});
txtPosition.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "position", txtPosition.getText().toString());
}
}
});
ArrayListの<のEditTextを持っているいくつかの方法があるような...>のEditTextビューの、へのポインタを(どのように申し訳ありませんが、確かではない)を割り当てます既存のeditTextを編集し、onFocusChangeListenerをarraylist全体に設定しますか?または、ArrayListを繰り返し処理し、onFocusChangeListenerを各メンバーに設定しますか?
また、どのEditTextが実行されたかにかかわらず、すべてのデータをデータベースに保存するか、いずれかのonFocusChangeListenerイベントを検出する方法はありますか?
これは実際に私が使用する方法です。ありがたいことに、フラグメントはOnFocusChangedListenerも実装できます!最終的に、コードが少なくなります。 –
'OnFocusChange-d-Listener'ではなく' OnFocusChangeListener'ですか? (ハイフンは分かりやすくするために追加されています)明らかに大きな問題ではありませんが、まだ分かりませんでした。 – Kirk
私はこれで苦労しています、setOnFocusChangeListenerは匿名の内部クラスが渡されます。 – k2ibegin