2014-04-22 3 views
0

Dans ma demande j'ai 3 EditText j'ai problème avec focus, je veux effacer l'objet de EditText qui a le focus lorsque l'utilisateur clique sur le bouton Soumettre i utilisé edittext.clearFocus() cette volonté fonctionne très bien si j'ai seule EditText dans la mise en page, comment peut effacer la mise au point pour plusieurs EditText s'il vous plaît aiderComment faire orientation claire pour EditText multiples dans Android

+0

Tous les trois EditText h se concentrer sur le même temps ?? Intéressant, comment l'as-tu fait? –

+0

pas comment cela possible, mon problème est quand j'ai plusieurs 'edittext'' edittext.clearFocus() 'ne fonctionne pas –

+0

Ajouter le code qui ne fonctionne pas .. –

Répondre

3

Sur bouton submit cliquez j'ai essayé cela comme Roshan Jha suggéré et il fonctionne très bien

yourEditText.setFocusable(false); 
yourEditText.setFocusableInTouchMode(true); 

yourEditText1.setFocusable(false); 
yourEditText1.setFocusableInTouchMode(true); 

yourEditText2.setFocusable(false); 
yourEditText2.setFocusableInTouchMode(true); 
0

Essayez comme ça

editText.setFocusable(true/false); 
1

utiliser seulement quand sous le onclick de votre bouton ...

lorsque vous cliquez sur le bouton Soumettre l'accent sera b perdu de tous les editText

yourEditText.setFocusable(false); 
yourEditText.setFocusableInTouchMode(false); 

yourEditText1.setFocusable(false); 
    yourEditText1.setFocusableInTouchMode(false); 

    yourEditText2.setFocusable(false); 
    yourEditText2.setFocusableInTouchMode(false); 

utiliser dans la dernière de votre page essentiellement après le clic d'écoute

public boolean onTouch(View v, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_UP) { 
       yourEditText.setFocusable(true); 
       yourEditText.setFocusableInTouchMode(true); 
      } 

      return false; 
    } 

MISE À JOUR ENCORE

public class ChangePassword extends Activity implements OnClickListener 
    { 
TextView txtUsername, txtCancel; 
Button txtSubmit, btnback; 
EditText txtOldPassword, txtNewPassword, txtConfirmPassword; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
// TODO Auto-generated method stub 
super.onCreate(savedInstanceState); 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.change_password); 

txtOldPassword = (EditText) findViewById(R.id.txt_current_password); 
txtOldPassword.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     txtOldPassword.setFocusable(true); 
     txtOldPassword.requestFocus(); 

    } 

}); 

txtNewPassword = (EditText) findViewById(R.id.txt_new_password); 


    txtNewPassword.setOnClickListener(new View.OnClickListener() 
{ 
     @Override 
     public void onClick(View v) 
     { 
      txtNewPassword.setFocusable(true); 
      txtNewPassword.requestFocus(); 

     } 

    }); 

txtConfirmPassword = (EditText) findViewById(R.id.txt_confirm_password); 
    txtConfirmPassword.setOnClickListener(new View.OnClickListener() 
{ 
     @Override 
     public void onClick(View v) 
     { 
      txtConfirmPassword.setFocusable(true); 
      txtConfirmPassword.requestFocus(); 

     } 

    }); 



txtSubmit = (Button) findViewById(R.id.txtsubmit); 
btnback = (Button) findViewById(R.id.btnBack); 

txtUsername = (TextView) findViewById(R.id.tv_login_name); 
txtCancel = (TextView) findViewById(R.id.txtcancel); 

txtSubmit.setOnClickListener(this); 
txtCancel.setOnClickListener(this); 


} 

public void onClick(View view) { 

     switch(view.getId()) 
     { 


      case R.id.txtsubmit: 

      txtOldPassword.setFocusable(false); 
       txtNewPassword.setFocusable(false); 
       txtConfirmPassword.setFocusable(false); 
       break; 

      case R.id.txtcancel: 

       finish(); 

        break; 
         case R.id.btnBack: 
          finish(); 

          break; 

        } 
       } 
} 

Votre XML

<EditText 
android:id="@+id/txt_current_password" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="6dp" 
android:layout_marginLeft="7dp" 
android:layout_marginTop="6dp" 
android:background="@drawable/backwithborder" 
android:hint="@string/hint_current_password" 

android:inputType="textPassword" 
android:singleLine="true" 
android:textColor="#b8b8b8" 
android:textSize="17sp" 
android:typeface="sans" > 
+0

si encore une fois je veux me concentrer alors, comment puis-je faire le focus vrai. –

+0

Lorsque l'utilisateur clique sur le 'edittext' je veux me concentrer à nouveau –

+0

ok je vais mettre à jour ma réponse –

0
getWindow().getDecorView().clearFocus(); 

juste ajouter .. vous mise en page doit avoir:

android:focusable="true" 
android:focusableInTouchMode="true" 
+0

Merci pour la réponse .. je vais vérifier –