ho letto in giro circa le domande su come impostare un oggetto da mettere a fuoco però non riesco a trovare né una risposta a quello che sto cercando di fare.come forzare attenzione per modificare il testo
Utilizzo della messa a fuoco Listener ho fatto quanto segue:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (Ehour.getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
Ehour.setFocusable(true);
Ehour.requestFocus();
}
}
}});
ho provato i suggerimenti dai pali seguire:
ho letto questo post, ma utilizzando questi suggerimenti e non sembrano lavoro: How to set focus on a view when a layout is created and displayed?
Il mio obiettivo è che quando il focus del testo di modifica viene perso, ho bisogno di tornare ad esso se la voce data non è valida.
Inoltre secondo il suggerimento dato da Bill Mote ho anche provato:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (Ehour.getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
((EditText)arg0).requestFocus();
}
}
}});
** EDIT ** Ho anche aggiunto la riga sotto la prima requestFocus():
((EditText)arg0).setFocusable(true);
*** EDIT ****
Provato da questo post: Stop EditText from gaining focus at Activity startup
le seguenti modifiche: Nel layout alla prima intestazione di layout ho aggiunto:
android:id="@+id/enterdata"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
Poi nel OnChangeFocusListener ho fatto questo:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (((EditText)arg0).getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
findViewById(R.id.enterdata).requestFocus();
((EditText)arg0).setFocusable(true);
((EditText)arg0).setFocusableInTouchMode(true);
((EditText)arg0).requestFocus();
}
}
}});
Tuttavia ho ancora ottenere lo stesso comportamento di prima, il testo di modifica su cui si concentra l'attenzione rimane in questo modo, ma il testo di modifica su cui voglio focalizzare l'attenzione sembra concentrato ma non sembra essere usato come se fosse ancora in attesa di essere focalizzato.
*** EDIT ****
codice qui sotto come da recente post trovate sul StackOverflow dove l'utente che ha fatto la domanda sta vivendo lo stesso problema come me:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (((EditText)arg0).getText().length()<=0) {
Calendar nohour = Calendar.getInstance();
((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
if (((EditText)arg0).requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Emin.clearFocus();
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
}
}
}
}});
Guardando questo post: http: // StackOverflow.it/questions/1555109/stop-edittext-from-gaining-focus-at-activity-startup Ho provato le risposte che aggiungerò alla mia domanda – TimCS
Ho anche provato a codificare tutte le caselle di testo per cancellare mettere a fuoco e impostare setFocusable e setFocusableInTouchMode su false ma il comportamento è sempre lo stesso, sembra che il testo di modifica su cui voglio focalizzare l'attenzione sia focalizzato, ma qualsiasi digitazione finisce nel testo di modifica che l'utente si sposterà !!!!! AIUTO!!!! – TimCS
Appare in questo post: http: //stackoverflow.com/questions/14327412/set-focus-on-edittext? Rq = 1 l'utente ha avuto lo stesso problema e non sembra che sia stato risolto, tuttavia sto andando per provare i suggerimenti qui per vedere se funzionano per me – TimCS