--
inputTypeは便利だけど、入力制限だけ(ですよね?)。
バリデーションにはやはり正規表現。String.matchesを使えばいい。
一字ずつ処理チェックしたい場合はEditTextのaddTextChangedListenerを使えば良いみたい。
正規表現は、\の扱いにちょっと癖があるな。.は\.ではなく\.みたい(Markdown上だと1本おおい)。
MyActivity.java
public class MyActivity extends Activity {
private EditText etEmail;
private String email;
//パターン(\\に注意)
private String email_pattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
//email
etEmail = (EditText)findViewById(R.id.etEmail);
}
//XMLのonClickで設定
public void onClick(View v){
String email = etEmail.getText().toString();
if(email.matches(email_pattern)){
//match
Toast.makeText(getApplicationContext(),"match",Toast.LENGTH_SHORT).show();
}else{
//unmatch
Toast.makeText(getApplicationContext(),"un match",Toast.LENGTH_SHORT).show();
}
}