Domanda

Sto usando TextWatcher per convalidare il mio ingresso e voglio che venga giustificabile la mia immagine del suggerimento rosso in modo da poter dare al feedback visivo utente come mostrato nell'immagine sottostante.Quello che ho finora è il testo di modifica con l'immagine del suggerimento rosso che appare quando inserisco i dati non validi.Ora voglio sapere come rendere questo suggerimento rosso cliccabile e creare suggerimenti pop-up appaiono come mostrato.

EDITTEXT Hint

Questo è il codice che ho finora,

public class MainActivity extends Activity implements TextWatcher{

    EditText username,email = null;
    boolean flag=false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);      

        username=(EditText) findViewById(R.id.usernametxt);
        email=(EditText) findViewById(R.id.emailtxt);

        username.addTextChangedListener(this);

        username.setOnTouchListener(new View.OnTouchListener(){
        public boolean onTouch(View view, MotionEvent motionEvent) {
            // your code here...
            if(flag)
            {
                email.setText("Error. . .");
            }
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);                
            return false;
            }
        });

        Button loginbtn = (Button) findViewById(R.id.login);
        loginbtn.setOnClickListener(new Button.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                //Check Validations
                if(username.getText().toString().equalsIgnoreCase(""))
                {
                    username.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.alert, 0);
                    flag=true;
                }
            }
        });

        Button clearbtn = (Button) findViewById(R.id.clear);
        clearbtn.setOnClickListener(new Button.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                username.setText("");
                email.setText("");      
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub      
        username.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
        flag=false;
        email.setText("");
    }   
}
.

È stato utile?

Soluzione

Devi creare un EditText personalizzato per ottenere la prima caratteristica.

risolto qui

La vista popup su Facendo clic sul Disegnabile può essere eseguita con un PopupWindow

risolto qui.

Altri suggerimenti

È molto semplice se si utilizza l'immagine del suggerimento rosso come composto stilizzabile a destra del tuo usernametxt di editext. Di seguito faranno il trucco.

EditText username = (EditText) findViewById(R.id.usernametxt);
username.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            if(event.getRawX() >= username.getRight() - username.getTotalPaddingRight()) {
                // your action for drawable click event

             return true;
            }
        }
        return true;
    }
});
.

Se vuoi per il cambiamento designabile a sinistra l'istruzione se:

if(event.getRawX() <= username.getTotalPaddingLeft())
.

Allo stesso modo, puoi farlo per tutti i casi di composizione.

username.getTotalPaddingTop()
username.getTotalPaddingBottom()
.

Questo metodo Chiamata restituisce tutta l'imbottitura su quella parte compresi i casi.Puoi usarlo anche per testo, pulsante ecc.

Fare clic su qui per riferimento dal sito di Android Developer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top