Ich benutze TextWatcher, um meine Eingabe zu validieren und ich möchte mein rotes Hinweisbild anklickbar sein, damit ich dem Benutzer visuelle Rückmeldung geben kann, wie in der Abbildung unten gezeigt. Was ich bis jetzt habe, ist der Bearbeitungstext mit dem roten Hinweisbild, wenn ich ungültige Daten eintrage. Ich möchte nun wissen, wie man diesen roten Hinweis klickbar macht und einen Pop-up-Hinweis wie gezeigt erscheinen lässt.Klickbare Verbindung in EditText, die eine Ansicht auf Klick öffnet
Dies ist der Code, den ich bisher habe,
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("");
}
}
Was ist das Problem? – Akram
@Akki Das Bild geschrieben ist, was ich erreichen möchte. Ich habe jetzt das rote Bild nur, wenn der Benutzer ungültige Daten eingibt. Ich möchte, dass das im Bild angezeigte Pop-up angezeigt wird, wenn der Benutzer auf den roten Bildhinweis klickt. –
Ich bin mir immer noch ziemlich sicher, dass ich das Problem verstehe. –