Warum funktioniert der EditText instanceof Call nicht, aber der TextView instanceof Call ist?EditText und instanceof funktioniert nicht?
Kann ich das mit Generika oder einem anderen besseren Weg lösen?
public class MyActivity extends ActionBarActivity
...
@Override
public void updateView() {
updateField(noteEditText, vault.getNote());
updateField(categoryTextView, category.getName());
}
private void updateField(View current, String data) {
if(current instanceof EditText && data.equals(((EditText) current).getText())) {
((EditText) current).setText(data);
} else if(current instanceof TextView && data.equals(((TextView) current).getText())) {
((TextView) current).setText(data);
}
}
...
im Grunde, weil Sie den '' && ignoriert. 'instanceOf' funktioniert einwandfrei, aber die Art, wie Sie eine Zeichenfolge daraus erhalten, ist falsch. '((EditText) current) .getText()' liefert ein 'Editierbares' Objekt, keine Zeichenkette. so ** eine Bedingung des Betreibers und ist nicht wahr **. '((EditText) current) .getText(). ToString()' ist was Sie wollen. –