回答:
私は一度このようなことをしました。
EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
return;
}
private boolean isEmpty(EditText etText) {
if (etText.getText().toString().trim().length() > 0)
return false;
return true;
}
またはaudriusごと
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
もし関数の戻り値false
のEditTextがある手段not empty
とリターンtrue
手段でのEditText empty
...
return etText.getText().toString().trim().length() == 0
true / falseブランチの代わりに使用しない特定の理由は?
private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}
VS 2019
EditTextを検証するには、ShowTextのEditText#setError メソッドを使用し、空またはnull値をチェックするには、組み込みのAndroidクラスTextUtils.isEmpty(strVar)を使用し ます。strVarがnullまたは長さゼロの場合にtrueを返します。
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
)
ifステートメントに別のものを追加する必要があります。
usernameEditText
はEditText
オブジェクトで、名前が変更されました etUserName
.toString();
必須ではありません
これを試して :
EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
if(TextUtils.isEmpty(strUserName)) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
ここのパーティーにはかなり遅れましたが、Android独自のTextUtils.isEmpty(CharSequence str)を追加するだけです
文字列がnullまたは長さ0の場合、trueを返します
したがって、5つのEditTextをリストに入れると、完全なコードは次のようになります。
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
isEmpty()
拡張するをとるためCharSequence
、Editable
呼び出す必要はありません.toString()
。
これを試して
TextUtils.isEmpty(editText.getText());
EditTextが空の場合は、なぜボタンを無効にしないのですか?私見これはより専門的に見えます:
final EditText txtFrecuencia = (EditText) findViewById(R.id.txtFrecuencia);
final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleStartStop);
txtFrecuencia.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
toggle.setEnabled(txtFrecuencia.length() > 0);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
length()
から使用できますEditText
。
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
私は通常、SBJが提案することを行いますが、その逆です。ダブルネガティブではなくポジティブな結果をチェックすることで、コードを理解しやすくなります。空のEdiTextを確認する方法を尋ねるかもしれませんが、本当に知りたいのは、内容が含まれていて空ではないことではありません。
そのようです:
private boolean hasContent(EditText et) {
// Always assume false until proven otherwise
boolean bHasContent = false;
if (et.getText().toString().trim().length() > 0) {
// Got content
bHasContent = true;
}
return bHasContent;
}
以下のようSBJ I「はコンテンツがありません」(または返却することを好むfalse
私は私のコンテンツチェックをborkedため)回避の例外をデフォルトとして。そうすれば、あなたはtrue
、チェックによってが「承認」されがます。
また、if
呼び出しも少しきれいに見えます:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
好みに大きく依存しますが、これは読みやすいと思います。:)
私はこの方法を使用します。これはtrim()
、空白を避けるために使用します。
EditText myEditText = (EditText) findViewById(R.id.editUsername);
if ("".equals(myEditText.getText().toString().trim()) {
Toast.makeText(this, "You did not enter a value!", Toast.LENGTH_LONG).show();
return;
}
EditTextが複数ある場合の例
if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
return;
}
すべてのEditText文字列を1つのIf条件で確認することもできます:このように
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
似たようなことをしたかった。しかし、エディットテキストからテキスト値を取得し、それを比較すること(str=="")
は、私にとってはうまくいきませんでした。だからより良いオプションは:
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
魅力のように働いた。
「これをチェックして、きっと気に入っていただけると思います。」
log_in.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
username=user_name.getText().toString();
password=pass_word.getText().toString();
if(username.equals(""))
{
user_name.setError("Enter username");
}
else if(password.equals(""))
{
pass_word.setError("Enter your password");
}
else
{
Intent intent=new Intent(MainActivity.this,Scan_QRActivity.class);
startActivity(intent);
}
}
});
この短いコードを使用すると、文字列の最初と最後の空のスペースを削除できます。文字列が ""の場合はメッセージ "error"を返し、それ以外の場合は文字列を入力します
EditText user = findViewById(R.id.user);
userString = user.getText().toString().trim();
if (userString.matches("")) {
Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(this, "Ok", Toast.LENGTH_SHORT).show();
}
使用できますsetOnFocusChangeListener
。フォーカスが変更されたときにチェックされます
txt_membername.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if (arg1) {
//do something
} else {
if (txt_membername.getText().toString().length() == 0) {
txt_membername
.setError("Member name is not empty, Plz!");
}
}
}
});
私はButterKnifeリストバインディングを使用してから、リストにアクションを適用することを好みます。たとえば、EditTextsの場合、次のカスタムアクションがユーティリティクラスで定義されています(この場合ButterKnifeActions
)。
public static <V extends View> boolean checkAll(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = true;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) && hasProperty;
}
return hasProperty;
}
public static <V extends View> boolean checkAny(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = false;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) || hasProperty;
}
return hasProperty;
}
public interface Check<V extends View> {
boolean checkViewProperty(V view, int index);
}
public static final ButterKnifeActions.Check<EditText> EMPTY = new Check<EditText>() {
@Override
public boolean checkViewProperty(EditText view, int index) {
return TextUtils.isEmpty(view.getText());
}
};
ビューコードでは、EditTextをリストにバインドし、ビューを確認する必要があるときにアクションを適用します。
@Bind({R.id.edit1, R.id.edit2, R.id.edit3, R.id.edit4, R.id.edit5}) List<EditView> edits;
...
if (ButterKnifeActions.checkAny(edits, ButterKnifeActions.EMPTY)) {
Toast.makeText(getContext(), "Please fill in all fields", Toast.LENGTH_SHORT).show();
}
そしてもちろん、このパターンは、任意の数のビューの任意のプロパティをチェックするように拡張できます。それをあなたがそれと呼べるなら、唯一の欠点はビューの冗長性です。つまり、これらのEditTextを使用するには、それらを単一の変数にバインドして、名前で参照できるようにするか、リスト内の位置(edits.get(0)
など)で参照する必要があります。個人的には、それぞれを2回だけバインドします。1回は1つの変数に、もう1回はリストにバインドし、適切な方を使用します。
これを試してください:Kotlinで
//button from xml
button.setOnClickListener{
val new=addText.text.toString()//addText is an EditText
if(new=isNotEmpty())
{
//do something
}
else{
new.setError("Enter some msg")
//or
Toast.makeText(applicationContext, "Enter some message ", Toast.LENGTH_SHORT).show()
}
}
ありがとうございました
プライベートvoid checkempForm(){
EditText[] allFields = { field1_txt, field2_txt, field3_txt, field4_txt};
List<EditText> ErrorFields =new ArrayList<EditText>();//empty Edit text arraylist
for(EditText edit : allFields){
if(TextUtils.isEmpty(edit.getText())){
// EditText was empty
ErrorFields.add(edit);//add empty Edittext only in this ArayList
for(int i = 0; i < ErrorFields.size(); i++)
{
EditText currentField = ErrorFields.get(i);
currentField.setError("this field required");
currentField.requestFocus();
}
}
}