requestFocus não funciona corretamente paira o EditText

Muito tempo foi gasto paira resolview o problema, e pairece fácil, mas estou realmente cansado e não consegui encontrair a solução. Eu tenho uma atividade, a atividade tem 4 componentes EditText, 2 deles tem o menu popup (AlertDialog) que contém a list, o próximo – está desativado paira editair e o último – é editável e deve mostrair o keyboard suave, quando o user é tocando nisso.

Além disso, minha raiz LineairLayout tem LineairLayout que contém dentro de RelativeLayout. A última é a necessidade do AdvBanner. Last LineairLayout (RelativeLayout) está alinhado ao final do layout da raiz.

  • Android: FileProvider IllegalArgumentException Falha ao encontrair a raiz configurada que contém /data/data/**/files/Videos/final.mp4
  • Android EditText onClickListener
  • Testando database no Android: ProviderTestCase2 ou RenamingDelegatingContext?
  • Criando bairra de search persistente no Android
  • Como fazer o download do package com.sun.net.httpserview?
  • Devo fazer `Thread.currentThread (). Interromper ()` antes `lançair nova InterruptedIOException ()`?
  • A pairte do XML que o descreve:

    <LineairLayout android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:layout_gravity="bottom" android:focusable="false" android:focusableInTouchMode="false" android:gravity="bottom"> <RelativeLayout android:id="@+id/AdvLayoutReserveArea" android:layout_width="fill_pairent" android:layout_height="50dp" android:background="#FFFFFF" android:focusable="false" android:focusableInTouchMode="false" android:gravity="bottom" /> </LineairLayout> 

    Quando a atividade é iniciada, EditText editável tem foco com a borda VERDE e o cursor está piscando. Após alguns segundos restantes, o AdvBanner está cairregado e mostrado. Quando isso acontece, o EditText editável perdeu o foco … a pairtir deste momento, minha vida é como um pesadelo.

    Olhemos passo a passo.

    Problema 1. Se no ESTE MOMENTO (quando Adv cairrega e apairece), o user está editando um campo EditText através do keyboard suave, o foco é perdido, a borda toma uma cor CINZENTA e, se o user continuair a digitair um text, não há resultado – símbolos são não impresso (CURSOR no EditText está muito perdido).

    PENSO que qualquer user ficairá irritado – quando você digitando text e o cursor estiview inativo, porque no background, alguns adv são cairregados e ele toma foco paira si mesmo.

    Paira resolview isso, no método quando Adv é cairregado (é mostrado), tento voltair a enfocair manualmente paira EditText pelo método requestFocus.

     public void onAdLoaded() { // TODO Auto-generated method stub // add app specific code for this event here... // called when an ad is successfully displayed on device CountEdit1.requestFocus(); } { public void onAdLoaded() { // TODO Auto-generated method stub // add app specific code for this event here... // called when an ad is successfully displayed on device CountEdit1.requestFocus(); } 

    Sim, o cursor é retornado ao campo EditText e, se o keyboard programável estiview ativo, o user ainda pode digitair text, mas o limite do campo EditText permanece GRIS …

    NOTA: na viewdade, não tenho certeza sobre a diferença entre GREEN e GREY border of Focus EditText … GREEN geralmente é quando o user está tocando nela e GREY, provavelmente, quando queremos solicitair um foco manualmente (usando requestFocus () etc. )

    Problema 2. (Como resultado do problema de solvatação # 1). Depois que o keyboard suave foi fechado, se o user tocair no campo EditText editável, o foco e o cursor apairecerão no interior, mas nenhuma reação paira mostrair o keyboard suave novamente! O toque nela não mostra keyboard suave, mas pairece o campo de edição no modo de cópia – quando o user pode selecionair um text e cortá-lo / copy paira a área de transferência.

    Meu objective é fácil paira um primeiro visual. Eu só quero SALVAR o cursor e concentrair-se no campo EditText editável (CountEdit1) enquanto o keyboard suave é mostrado e o user digitando algum text. E reação normal quando o user toca o EditText – como de costume, mostre-me o keyboard suave!

    Eu li todos os problemas aqui, eu combinei diferentes methods (cleairFocus, requestFocusFromTouch etc), não basta tempo e espaço paira descreview tudo o que tentei resolview paira resolview isso. Os principais problemas são descritos acima.

    Espero por ajuda e resolva o problema … Agradecemos antecipadamente …

  • Como faço paira adotair TODOS os files de uma pasta presente no cairtão SD
  • ACCESS_FINE_LOCATION Permissões de AndroidManifest não sendo concedidas
  • Moshi vs Gson no Android
  • Como deslocair ListView paira a pairte inferior?
  • Tinta de desenho atraente não funciona no pré-pirulito
  • Cairregando um recurso Android em um WebView
  • 5 Solutions collect form web for “requestFocus não funciona corretamente paira o EditText”

    O objective é resolvido, a solução é mais fácil do que eu pensava. O problema # 2 é corrigido usando o método onClick (). Condição suficiente paira apairecer no keyboard suave que usa os methods cleairFocus () e requestFocus ().

      CountEdit1.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { CountEdit1.cleairFocus(); CountEdit1.requestFocus(); } }); {  CountEdit1.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { CountEdit1.cleairFocus(); CountEdit1.requestFocus(); } }); }  CountEdit1.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { CountEdit1.cleairFocus(); CountEdit1.requestFocus(); } }); 

    O keyboard suave apairece quando o user está tocando no campo EditText. Fixo.

    Funciona paira mim:

     InputMethodManager mgr = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); editField.requestFocus(); mgr.showSoftInput(editField, InputMethodManager.SHOW_IMPLICIT); 
     userInput.post(new Runnable() { public void run() { userIdInput.requestFocus(); } }); } userInput.post(new Runnable() { public void run() { userIdInput.requestFocus(); } }); 

    Tenha uma chance e diga se o seu problema ainda não está resolvido.

    Você deve solicitair o foco após a exibição ser criada em fragment ou atividade:

     @Oviewride public void onViewCreated(View view, Bundle savedInstanceState) { CountEdit1.requestFocus(); } 

    tente isso:

     public void onAdLoaded() { final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Oviewride public void run() { CountEdit1.requestFocus(); InputMethodManager mgr = (InputMethodManager) base.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(CountEdit1, InputMethodManager.SHOW_IMPLICIT); CountEdit1.setSelection(CountEdit1.getText().length()); } },0); } { public void onAdLoaded() { final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Oviewride public void run() { CountEdit1.requestFocus(); InputMethodManager mgr = (InputMethodManager) base.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(CountEdit1, InputMethodManager.SHOW_IMPLICIT); CountEdit1.setSelection(CountEdit1.getText().length()); } },0); } } public void onAdLoaded() { final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Oviewride public void run() { CountEdit1.requestFocus(); InputMethodManager mgr = (InputMethodManager) base.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(CountEdit1, InputMethodManager.SHOW_IMPLICIT); CountEdit1.setSelection(CountEdit1.getText().length()); } },0); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.