La modifica di richiesta EditText non funziona

Ho un EditText e un Button . Facendo clic sul button che voglio aprire la tastiera EditText e contemporaneamente richiedere la messa a fuoco su EditText , affinché l'utente inizierà direttamente a digitare la tastiera e il text viene visualizzato in EditText . Ma nel mio caso quando faccio clic sul button apre la tastiera, ma non metterò l'attenzione su EditText , perché l'utente deve fare di nuovo clic su EditText per scrivere su di esso. Qual'è il problema. Qualsiasi aiuto o suggerimento.

Codice Clic sul button

  • come riavviare un'attività in android?
  • Errore di precompilazione di Android su 21.0.1 android sdk
  • Perché ci sono due cartelle di Cordova www?
  • C'è un modo per sapere se la sdcard è montata contro non installata affatto?
  • Che cos'è il context in Android?
  • Android rileva la disconnessione Bluetooth immediatamente Max 2 secondi
  •  m_SearchEditText.requestFocus(); InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInputFromWindow(m_SearchEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); 

  • non trovare android sdk (Unità)
  • Android Come ruotare l'ago quando la velocità cambia?
  • Estrai una row da un text EditText
  • Visualizza tutto il contenuto di ScrollView nel layout grafico di Eclipse
  • Android tabhost cambia stile di text in stile
  • java.lang.ClassCastException: android.graphics.drawable.LayerDrawable non può essere lanciato in android.graphics.drawable.GradientDrawable
  • 6 Solutions collect form web for “La modifica di richiesta EditText non funziona”

    accertarsi che l'edittext sia focalizzabile in modalità touch. Puoi farlo in due modi.

    In xml:

     android:focusableInTouchMode="true" 

    in Java:

     view.setFocusableInTouchMode(true); 

    Personalmente non mi fido della definizione XML di questo parametro. Ho sempre bisogno di attenzione da queste due righe di codice:

     view.setFocusableInTouchMode(true); view.requestFocus(); 

    Il tastierino della tastiera appare su se stesso senza la necessità di call InputMethodManager.

    Funziona nella maggior parte dei casi. Una volta che non funzionava per me perché ho perso il riferimento all'object a causa di una lavorazione abbastanza pesante – assicuratevi che questo non sia il tuo problema.

    Nel mio caso ha funzionato aggiungendo un gestore dopo aver fatto clic su button e mettere a fuoco in un'altra visuale il focus può tornare alla tua vista necessaria.

    basta inserire questo nel tuo codice:

     final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { lastview.getEditText().clearFocus(); m_SearchEditText.requestFocus(); InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(mLastNameET, InputMethodManager.SHOW_IMPLICIT); } }, 100); 

    Spero che sia utile

    Nel tuo manifesto.xml scrivere:

     <activity android:name=".MainActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysVisible" /> 

    E call m_SearchEditText.requestfocus() in oncreate() .
    O,
    Provare:

     if(m_SearchEditText.requestFocus()) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } 

    Le seguenti opere mi aiutano:

     EditText yourEditText= (EditText) findViewById(R.id.yourEditText); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); 

    Come estensione a questa risposta (non l'ho aggiunto come commento a causa della reputazione …).

    Se si desidera ridurre il tempo ritardato a zero, utilizzare invece handler.post (). Codice completo:

     final Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { lastview.getEditText().clearFocus(); m_SearchEditText.requestFocus(); InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(mLastNameET, InputMethodManager.SHOW_IMPLICIT); } }); 

    U necessità di due attributi xml anche per raggiungere questo objective:

     android:focusable="true" android:focusableInTouchMode="true" 

    Aggiungerli a EditText nonché ai layout del padre (qualsiasi layout all'interno di quali viste). Per impostazione predefinita, questi sono falsi, in modo che la messa a fuoco non sia data alla visualizzazione richiesta.

    Fonte: https://developer.android.com/reference/android/view/View.html#attr_android:focusable

    Dopo che u mostra il text EditText sulla base della selezione della casella di controllo, aggiungere dynamicmente i punti di messa a fuoco successivi e precedenti nel codice.

    Spero che questo ti aiuti.

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