Normalmente, si desidera la massima compatibilità con EditText
il normale comportamento di.
Così si dovrebbe non usare android:focusable="false"
come, sì, la vista sarà semplicemente non essere attivabile più che sembra male. Lo sfondo disegnabile non mostrerà più il suo stato "premuto", per esempio.
Quello che dovresti fare invece è il seguente:
myEditText.setInputType(InputType.TYPE_NULL);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
}
});
Impostando il tipo di input su TYPE_NULL
, si impedisce la visualizzazione della tastiera del software.
Impostando OnClickListener
e OnFocusChangeListener
, ti assicuri che la tua finestra di dialogo si apra sempre quando l'utente fa clic nel EditText
campo, sia quando ottiene il focus (primo clic) che ai clic successivi.
Basta impostare android:inputType="none"
o setInputType(InputType.TYPE_NULL)
non è sempre sufficiente. Per alcuni dispositivi, è necessario impostare anche android:editable="false"
in XML, sebbene sia deprecato. Se non funziona più, verrà semplicemente ignorato (come tutti gli attributi XML che non sono supportati).