-4

J'ai besoin de changer dynamiquement la propriété de la couleur de l'indice quand elle n'est pas focalisée. Est-il possible de modifier dynamiquement la couleur de l'indicateur (pas dans l'état de mise au point).Comment changer dynamiquement la propriété de la couleur de l'indice lors de son état non traité?

design actuel

enter image description here

et mon xml

enter image description here

Je ne peux pas changer la propriété de couleur de pointe quand il est programme non focalisé. Je suis coincé. Est-ce possible? S'il vous plaît aidez-moi. Voici mon code -

  btnSignUp.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       final String email = emailEditText.getText().toString(); 
       final String pass = passEditText.getText().toString(); 
       if (email.isEmpty()) { 
        inputLayoutEmail.setHint("email is required to login"); 
        inputLayoutEmail.setHintTextAppearance(R.style.EditTextLayout); 
        inputLayoutEmail.setError(" "); 
        emailEditText.setHintTextColor(getResources().getColor(R.color.primary_dark)); 

       } 
       if (pass.isEmpty()) { 
        inputLayoutPassword.setHint("password is required to login"); 
        passEditText.setHintTextColor(getResources().getColor(R.color.primary_dark)); 

        inputLayoutPassword.setHintTextAppearance(R.style.EditTextLayout); 
        inputLayoutPassword.setError(" "); 
        inputLayoutPassword.clearFocus(); 
        passEditText.setHint("Password is required to login"); 
        passEditText.setHintTextColor(Color.RED); 
       } 

Répondre

0

Utilisez ce code cela peut vous aider.

button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (editText1.getText().toString().length() == 0) { 
        editText1.setHintTextColor(Color.RED); 
       } 
       if (editText2.getText().toString().length() == 0) { 
        editText2.setHintTextColor(Color.RED); 
       } 
      } 
     }); 
+0

je dois changer d'état non focalisé .. pas dans l'état concentré .. –

+0

Vous avez besoin d'écoute lorsque focus est perdu d'edittext? –

+0

lorsque je clique sur Ouvrir une session sans remplir de champs, dans ce cas, la couleur de l'indice des deux champs change.Il n'y a pas de focus. –

0
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View view, boolean b) { 
      if (!b) { 
     editText.setHintTextColor(getResources().getColor(R.color.red)); 
      } else { 
      // set which color you want when edittext is focused 
     } 
    }); 

ou vous pouvez utiliser le thème aussi pour définir la couleur

<style name="InputLayoutTheme" parent="Widget.Design.TextInputLayout"> 
    // Whenever input layout is un-focused, below is the color for label 
    <item name="android:textColorHint">@color/dark_gray</item> 
    // Whenever input layout is un-focused, below is the underline color 
    <item name="colorControlNormal">@color/dark_gray</item> 
    <!-- Whenever input layout is focused, below is the color for label, cursor & underline--> 
    <item name="colorControlActivated">@color/button_text_blue2</item> 
</style> 
+0

... lorsque je clique sur connexion sans remplir de champs, dans ce cas la couleur de l'indice du champ change.I ne donne aucun focus .. –

+0

ajoute ce style au fichier de style

+0

jeu de paramètres ci-dessous pour textInput mise en page android : theme = "@ style/InputLayoutTheme" application: errorEnabled = "true" application: errorTextAppearance = "@ style/ErrorTextAppearance" –

0

S'il vous plaît essayer ce code. Il modifie la couleur du texte de l'indicateur en ROUGE lorsque vous cliquez sur Connexion et si les polices sont vides. Et il modifie la couleur du texte comme BLACK lorsque vous cliquez pour écrire n'importe quoi dans edittext. Hope that helps ..

Voici mon activité -

public class Main2Activity extends AppCompatActivity implements View.OnFocusChangeListener{ 

    EditText emailEditText, passEditText; 
    Button btnSignUp; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.amin); 

     emailEditText = (EditText) findViewById(R.id.edt1); 
     passEditText = (EditText) findViewById(R.id.edt2); 
     btnSignUp = (Button) findViewById(R.id.btnSignUp); 

     emailEditText.setOnFocusChangeListener(this); 
     passEditText.setOnFocusChangeListener(this); 
     btnSignUp.setOnFocusChangeListener(this); 

     btnSignUp.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 


       final String email = emailEditText.getText().toString(); 
       final String pass = passEditText.getText().toString(); 
       if (email.isEmpty()) { 

        emailEditText.setHintTextColor(Color.RED); 

       } 
       if (pass.isEmpty()) { 

        passEditText.setHintTextColor(Color.RED); 

        passEditText.setHint("Password is required to login"); 
        passEditText.setHintTextColor(Color.RED); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
      if(v instanceof EditText) 
      { 
       ((EditText)v).setHintTextColor(Color.BLACK); 
       v.requestLayout(); 
       v.refreshDrawableState(); 

      } 
    } 
} 

And My XML -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <EditText 
     android:id="@+id/edt1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="PLease enter Id" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:textColor="@color/black"/> 

    <EditText 
     android:id="@+id/edt2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="PLease enter Password" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:textColor="@color/black" /> 


    <Button 
     android:id="@+id/btnSignUp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Login" 
     /> 
</LinearLayout>