私はedittextをいくつか持っていて、ユーザーから入力された文字列をチェックしています。ユーザーは、ダイアログの最後にボタンをクリックしたときに、いくつかのedittextsが充填されていない場合、私はそれの背景色を変更すると、このようにテキストを設定します。edittextの背景色を変更するには
for(int i=0;i<fields.length;i++){
if(fields[i].getText().toString().trim().length()<=0){
redFields(fields[i]);
}
}
private void redFields(EditText t){
t.setBackgroundColor(Color.RED);
t.setText("FIELD REQUESTED!");
}
ユーザーが赤のEditTextで再度クリックしたときに、今私が欲しいです背景色を白に変更し、その中のテキストを削除します(FIELD REQUESTED
)。 私はこの方法でそれをやろうとしている:どのように私はそれを行うことができます
onClickListener
と試みるが、それは動作しません:(
private void addFieldsListener(){
for(EditText f : fields){
final EditText ff = f;
ff.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus && ff.getBackground().equals(Color.RED)){
ff.setBackgroundColor(Color.WHITE);
}
}
});
}
}
何もあなたは私を助けることができる
あなたは行を取得しています。 getBackground()はドロウアブルを返します。 drawableと色を比較しています...これを確認してください。 – Arslan