ユーザーが入力できるように、Androidに5つのEditTexts
があります。 5つすべてのEditTexts
がnullの場合にチェックする方法があるかどうかを知りたいです。これを行う方法はありますか?
私は一度このようなことをしました。
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;
}
OR Per = audrius
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
関数returnfalse
がedittextがnot empty
であり、returntrue
がedittextがempty
..であることを意味する場合.
EditTextを検証するには EditText#setError メソッドでshow errorを使い、空または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;
}
これを試して :
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;
}
または TextUtils クラスを次のように使用します。
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
}
}
他の答えは正しいですが、短い方法でそれをしなさい
if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
これを試してください
TextUtils.isEmpty(editText.getText());
EditText
からlength()
を使用できます。
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;
}
As SBJ 私は自分のコンテンツチェックを無効にしたので例外を避けるためにデフォルトで "コンテンツがない"(またはfalse
)を返すことを好みます。そのようにしてあなたはtrue
があなたの小切手によって「承認された」ことを絶対に確信するでしょう。
私はまた、それを呼び出すif
も少しきれいに見えると思います:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
それは好みに非常に依存しています、しかし私はこれが読みやすいと思います。 :)
if(TextUtils.isEmpty(textA.getText())){
showToast(it's Null");
}
あなたは私の例のようにTextUtils.isEmptyを使うことができます!がんばろう
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) {
}
});
私はこの方法を使います。空白を避けるために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;
}
これにはTextUtils
を使用しました。
if (TextUtils.isEmpty(UsernameInfo.getText())) {
validationError = true;
validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}
private boolean hasContent(EditText et) {
return (et.getText().toString().trim().length() > 0);
}
私は似たようなことをやりたかった。しかし、編集テキストからテキスト値を取得して(str=="")
のように比較するのは私にとってはうまくいきませんでした。だからより良いオプションは次のとおりです。
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
魅力のように働いた。
If ELSE If条件を使用してこれを試してください。あなたは簡単にあなたのeditTextフィールドを検証することができます。
if(TextUtils.isEmpty(username)) {
userNameView.setError("User Name Is Essential");
return;
} else if(TextUtils.isEmpty(phone)) {
phoneView.setError("Please Enter Your Phone Number");
return;
}
1つのIf条件ですべてのEditText文字列をチェックすることもできます。
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
各編集テキストに対してこの関数を呼び出すことができます。
public boolean isEmpty(EditText editText) {
boolean isEmptyResult = false;
if (editText.getText().length() == 0) {
isEmptyResult = true;
}
return isEmptyResult;
}
「これをチェックして、きっと好きになるでしょう」
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);
}
}
});
単一行コードにTextUtils.isEmpty("Text here");
を使用
EditText txtUserID = (EditText) findViewById(R.id.txtUserID);
String UserID = txtUserID.getText().toString();
if (UserID.equals(""))
{
Log.d("value","null");
}
LogCatにメッセージが表示されます。
私は ButterKnife リストバインディングを使用してからリストにアクションを適用することを好みます。たとえば、EditTextの場合は、ユーティリティクラスで次のカスタムアクションを定義しています(この場合は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回はリストにそれぞれバインドし、適切な方を使用します。
これを試してみてください。
//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()
}
}
ありがとうございました
EditTextを空にするには、次の簡単な方法を試してください。
String star = editText.getText().toString();
if (star.equalsIgnoreCase("")) {
Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show();
}
以下は、私にとって一言で言えます。
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
まずEditText
からテキストを取り出し、それを文字列に変換し、最後に""
メソッドを使って.equals
と比較します。
private 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();
}
}
}
あなたは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!");
}
}
}
});
EditText edt=(EditText)findViewById(R.id.Edt);
String data=edt.getText().toString();
if(data=="" || data==null){
Log.e("edit text is null?","yes");
}
else {
Log.e("edit text is null?","no");
}
5つの編集テキストすべてに対して、次のようにします。
この短いコードで、あなたは文字列の始めと終わりで空のスペースを削除することができます。文字列が ""の場合はメッセージ "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();
}
if ( (usernameEditText.getText()+"").equals("") ) {
// Really just another way
}