come posso sottolineare each carattere in edittext?

Sto cercando di scrivere una parola che guadagna gioco come impiccato in android. diciamo se la parola è 'mela'. Voglio mostrare 5 sottolineature per dire al giocatore che la parola è lunga 5 caratteri e dovrebbero essere visualizzati / riempiti come sotto

immettere qui la descrizione dell'immagine

  • Lavori di servizio su cordova app
  • Ellipsize non funziona
  • Android Come ruotare l'ago quando la velocità cambia?
  • Perché il menu a discesa di overflow si trova nella parte superiore della barra di azione?
  • Android ottiene l'elenco di allarmi attivi
  • getParentFragment restituisce null
  • Non posso pensare a un modo per farlo facilmente. ho trovato questo essere esattamente come quello che sto cercando, ma non c'è risposta e in qualche modo ha un sacco di downvotes.

    il mio pensiero iniziale sta creando edittext con sottolineatura per essere il suggerimento e loop attraverso tutti i personaggi. questo creerà # di edittext basandosi su quanti caratteri, ma la sottolineatura sarà eliminata una volta che il carattere è riempito e ho bisogno di creare collegamenti al precedente ed al successivo edittext quando il carattere viene eliminato / riempito.

    qualsiasi idea su come realizzare questo? o c'è un lib da usare? Grazie mille!!

  • Cattura evento onTouch da genitore, gestirlo e passare ai bambini
  • In un'attività con Tabbed ViewPager, il ListView appare tagliato dal basso
  • Android - Mostra / nascondi barra di sistema in 4.2.2 (Nexus 10)
  • Aggiungere un contatto di condivisione con GDK
  • Android Logcat è vuoto quando si esegue il debug con il dispositivo in android studio
  • ImageView non mantenendo l'altezza e la width massima
  • 3 Solutions collect form web for “come posso sottolineare each carattere in edittext?”

    Penso che non abbiate bisogno di utilizzare edittext per realizzarlo. È ansible aggiungere un linearlayout orizzontale che non contiene alcuna vista all'interno del layout.

    E che puoi creare un layout che verrà popolato nel linearlayout orizzontale come vista. (il nome di thats può essere row_word) Questo layout includerà la sottolineatura sotto each edittext. È ansible utilizzare linearlayout per ottenerlo.

    Nel tuo frammento puoi scrivere un metodo popolare che piace qui sotto:

     public class Character { public String char; public boolean isFilled; } ArrayList<Character> words = new ArrayList(); words.addAll(_yourWords); linearlayout.removeAllViews(); for(int i = 0 ; i < words.size(); i++) { LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.row_word, horizontalLinearLayout, false); EditText editText = v.findViewById(R.id.textView); //you must declare focusable and focusableintouchmode values false in //the your row_word if(!word.isFilled) { edittext.setFocusable(true); edittext.setFocusableontouhcmode(true); editText.requestFocus(); } else{ edittext.setFocusable(false); edittext.setFocusableontouhcmode(false); edittext.clearfocus(); } edittex.setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { populate(); } . . . . . . horizontalLinearLayout.addView(v); } 

    se si desidera utilizzare la visualizzazione di text nella tua row, sostituire il metodo riportto di seguito nella tua attività per get il valore della chiave premuto dalla tastiera (con l'utilizzo di interface ovviamente). Altrimenti non dovrai usare sotto i codici.

     @Override public boolean dispatchKeyEvent(KeyEvent event) { Log.i("key pressed", String.valueOf(event.getKeyCode())); return super.dispatchKeyEvent(event); callBack.setValue(String.valueOf(event.getKeyCode()) } 

    La tua interface è come:

     public interface pressedKeyCallback { void onKeyPressed(String pressedKey);} 

    per mostrare la tastiera:

     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(imm != null){ imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0); } 

    Il text EditText ha una sottolineatura per impostazione predefinita, in modo da poter modificare i colors del tuo stile per renderlo più scuro. Aggiungi questi nel tuo stile.

     <item name="android:textColorSecondary">@android:color/black</item> <item name="colorAccent">@android:color/black</item> 

    Vorrei anche aggiungere questo per non avere quel cursore lampeggiante.

     editText.setCursorVisible(false); 

    Penso che tu sia la funzionalità di suggerimento di edittext. Vedi questo .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.