এডিটেক্সট ফাঁকা আছে কিনা তা পরীক্ষা করে দেখুন। [বন্ধ]


217

EditTextsব্যবহারকারীদের ইনপুট করতে আমার কাছে অ্যান্ড্রয়েডে 5 জন রয়েছে। আমি জানতে চাই যে সমস্ত 5 টি EditTextsযদি নাল হয় তবে আমার কাছে চেক করার কোনও পদ্ধতি থাকতে পারে কিনা। এই কাজ করতে কোন উপায় আছে কি??

উত্তর:


366

আমি একবার এই রকম কিছু করেছি;

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;
}

4
হ্যাঁ দুঃখিত, আপনি পাঁচটি ভুলে গেছেন আপনি একই কাজটি করতে একটি ফাংশন তৈরি করতে এবং পাঁচবার কল করতে পারেন - বা আপনি পাঁচটি এডিটেক্সট লুপ করতে পারেন।
cvaldemar


1
যদি editText.setInputType (ইনপুট টাইপ। TYPE_CLASS_NUMBER); নম্বরটি কাজ করছে না
জালা জনাকসিংহ

64
আপনার এটির প্রয়োজনের তুলনায় এটি আরও কঠোর করা: TextUtils.isEmpty (editText.getText ());
শহীদগ্লাউবিৎস

4
আমি সাধারণত যদি ব্যবহার করি (ব্যবহারকারীর নাম এডিটটেক্সট.সেটটেক্সট ()। টু স্ট্রিং ()। টু স্ট্রিং ()। ইস্পেটি ())
ড্যানিয়েল জোনকার

185
private boolean isEmpty(EditText etText) {
    if (etText.getText().toString().trim().length() > 0) 
        return false;

    return true;
}

বা প্রতি শ্রোতা হিসাবে

  private boolean isEmpty(EditText etText) {
        return etText.getText().toString().trim().length() == 0;
    }

যদি ফাংশন রিটার্ন falseমানে অ্যাডিটেক্সট হয় not emptyএবং রিটার্ন trueমানে অ্যাডিটেক্সট হয় empty...


29
খালি স্ট্রিং আইএমএইচওর চেয়ে চেক করার দৈর্ঘ্য +1 যাচাই করা ভাল। দৈর্ঘ্য যাচাইয়ের আগে স্ট্রিংটি ছাঁটাইতে সহায়তা করবে যাতে সাদা স্থানের অক্ষরগুলি গণনা করা যায় না। বিটিডব্লিউ, return etText.getText().toString().trim().length() == 0সত্য / মিথ্যা শাখার পরিবর্তে ব্যবহার না করার কোনও বিশেষ কারণ ?
অড্রিয়াস

1
আমি কোড পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা অনুমান করি ...
WiZarD

যদি editText.setInputType (ইনপুট টাইপ। TYPE_CLASS_NUMBER); সংখ্যা তারপর এটি ব্যবহার করুন।
জালা জানাকসিংহ

হ্যাঁ এটির কাজ কারণ এটি দৈর্ঘ্যের উপর নির্ভর করে ...
এসবিজে

private Boolean isEmpty(EditText etText){return etText.Text.ToString().Trim().Length == 0;}ভিএস 2019
সিদ্ধার্থ রাউট

144

সম্পাদনা পাঠ্য যাচাইকরণের জন্য শো ত্রুটির জন্য এবং খালি বা নাল মান ব্যবহার ইনবিল্ট অ্যান্ড্রয়েড শ্রেণীর পাঠ্যUtils.isEmpty (strVar) যাচাই করার জন্য যদি strVar নাল বা শূন্য দৈর্ঘ্যের হয় তবে সত্য ফিরে আসে

EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();

 if(TextUtils.isEmpty(strUserName)) {
    etUserName.setError("Your message");
    return;
 }

গুগল অনুসন্ধান থেকে তোলা ছবি


)যদি আপনার বিবৃতিতে অন্য একটি যুক্ত করা উচিত ।
18 ઽ ૯ ท

1
@ অ্যান্ড্রয়েডেন্থুসিয়াসস এটি আমার টাইপ ভুলটি উল্লেখ করার জন্য ধন্যবাদ আমার উত্তর আপডেট করেছে :)
মিলাপট্যাঙ্ক

দ্বিতীয় ক্ষেত্রটি "" ব্যবহারকারীর নাম এডিটটেক্সট "" বুঝতে পারছি না "স্ট্রিং স্ট্রুসারনেম = ব্যবহারকারীর নাম এডিটটেক্সট.সেটটেক্সট ()। টু স্ট্রিং ();" কোথায় এটি ঘোষিত হয়েছে?
স্যাম

তার আমার টাইপো @Sam আমি আমার উত্তর আপডেট আছে usernameEditTextহয় EditTextবস্তু এবং এখন নাম পালটে etUserName
MilapTank

1
.toString();প্রয়োজনীয় নয়
মারিউসএসএস

36

এটা চেষ্টা কর :

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;
}

3
... এটি করার সর্বোত্তম উপায়। অন্যান্য উদাহরণগুলি ইনপুটটিকে মঞ্জুরি দেয় যাটির জন্য অ্যাকাউন্ট করা হচ্ছে না।
dell116

28

এখানে পার্টিতে দেরি হয়ে গেছে, তবে আমাকে কেবল অ্যান্ড্রয়েডের নিজস্ব টেক্সটইটিস.আইএসপিটি (চারসেকেন্স স্ট্রিং) যুক্ত করতে হবে

স্ট্রিংটি নাল বা 0-দৈর্ঘ্য হলে সত্যটি প্রত্যাশায় ফিরে আসে

সুতরাং আপনি যদি একটি তালিকাতে আপনার পাঁচটি সম্পাদনাপত্র রেখে দেন তবে পুরো কোডটি হ'ল:

for(EditText edit : editTextList){
    if(TextUtils.isEmpty(edit.getText()){
        // EditText was empty
        // Do something fancy
    }
}

ismpty () ফাঁকা জায়গা পরীক্ষা করে না, একটি জায়গায় প্রবেশ করার চেষ্টা করুন
হান্ট

3
@ হান্ট এটি সত্য, তবে এটি আর খালি বা ফাঁকা হবে না। সম্ভবত TextUtils.isEmpty (sUserName.trim ()) ব্যবহারকারীর এক বা একাধিক ফাঁকা স্থান caseুকে পড়েছে সে ক্ষেত্রে সমস্ত ফাঁকা স্থান মুছে ফেলা উপযুক্ত হবে?
Qw4z1

isEmpty()একটি নেয় CharSequence, যা Editableপ্রসারিত হয়, সুতরাং .toString()এটির কল করার দরকার নেই ।
কার্ল

@ কার্ল শুভ পয়েন্ট! আমার উত্তর আপডেট।
Qw4z1

19

অন্যান্য উত্তরগুলি সঠিক তবে এটি সংক্ষিপ্ত উপায়ে করুন

if(editText.getText().toString().isEmpty()) {
     // editText is empty
} else {
     // editText is not empty
}


7

এডিটেক্সট ফাঁকা থাকলে কেবল বাটনটি অক্ষম করবেন না কেন? আইএমএইচও এটি আরও পেশাদার দেখায়:

        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) {

        }
       });

7

আপনি length()থেকে ব্যবহার করতে পারেন EditText

public boolean isEditTextEmpty(EditText mInput){
   return mInput.length() == 0;
}

6

আমি সাধারণত এসবিজে যা প্রস্তাব করি তা করি তবে অন্যভাবে। দ্বিগুণ নেগেটিভের পরিবর্তে ইতিবাচক ফলাফলগুলি পরীক্ষা করে আমার কোডটি বোঝা সহজ find আপনি খালি এডিটেক্সটগুলি কীভাবে চেক করবেন তা জিজ্ঞাসা করছেন, তবে আপনি যা জানতে চান তা যদি এটির কোনও বিষয়বস্তু থাকে এবং তা খালি নয়।

তাই ভালো:

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 আমি ফিরে পছন্দ (বা "কোনো সামগ্রী নেই" falseএড়ানোর ব্যতিক্রম ডিফল্ট কারণ আমি আমার সামগ্রী-যাচাই borked হিসাবে)। এইভাবে আপনি অবশ্যই নিশ্চিত হবেন যে trueআপনার চেকগুলি দ্বারা "অনুমোদিত" হয়েছে।

আমি মনে করি ifকলটিটিকে কিছুটা পরিষ্কার মনে হচ্ছে:

if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}

এটি অনেক বেশি পছন্দের উপর নির্ভরশীল, তবে আমি এটি পড়তে সহজ মনে করি। :)


4

আমি এই পদ্ধতিটি ব্যবহার করি, এটি 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;
}

যদি আপনার বেশ কয়েকটি এডিটেক্সট থাকে তবে একটি উদাহরণ

if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
        Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
        return;
}

4
if(TextUtils.isEmpty(textA.getText())){
            showToast(it's Null");
        }

আপনি আমার উদাহরণের মতো TextUtils.isEmpty ব্যবহার করতে পারেন! শুভকামনা


3
private boolean hasContent(EditText et) {
       return (et.getText().toString().trim().length() > 0);
}

3

আমি এটির TextUtilsজন্য ব্যবহার করেছি :

if (TextUtils.isEmpty(UsernameInfo.getText())) {
    validationError = true;
    validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}

2

আপনি যদি কন্ডিশন থেকে সমস্ত সম্পাদনা পাঠ্য স্ট্রিংগুলি একসাথে চেক করতে পারেন: এটির মতো

if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
                Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
            }

2

আমি অনুরূপ কিছু করতে চেয়েছিলেন। তবে সম্পাদনা পাঠ্য থেকে পাঠ্য মানটি পাওয়া এবং এটির তুলনা করা (str=="")আমার পক্ষে কাজ করে নি। সুতরাং আরও ভাল বিকল্পটি ছিল:

EditText eText = (EditText) findViewById(R.id.etext);

if (etext.getText().length() == 0)
{//do what you want }

কবজির মতো কাজ করেছেন।


2

ELSE যদি শর্ত থাকে তবে এটি ব্যবহার করে দেখুন। আপনি আপনার সম্পাদনা পাঠ্য ক্ষেত্রগুলি সহজেই যাচাই করতে পারেন।

 if(TextUtils.isEmpty(username)) {
                userNameView.setError("User Name Is Essential");
                return;
         } else  if(TextUtils.isEmpty(phone)) {
                phoneView.setError("Please Enter Your Phone Number");
                return;
            }

2

আপনি প্রতিটি সম্পাদনা পাঠ্যের জন্য এই ফাংশনটি কল করতে পারেন:

public boolean isEmpty(EditText editText) {
    boolean isEmptyResult = false;
    if (editText.getText().length() == 0) {
        isEmptyResult = true;
    }
    return isEmptyResult;
}

1
EditText txtUserID = (EditText) findViewById(R.id.txtUserID);

String UserID = txtUserID.getText().toString();

if (UserID.equals("")) 

{
    Log.d("value","null");
}

আপনি লগকেটে বার্তাটি দেখতে পাবেন ....


1

"এটি আপনার পছন্দ হবে তা নিশ্চিত করে দেখুন out"

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);
        }
    }
});


1

এই সংক্ষিপ্ত কোডের সাহায্যে আপনি স্ট্রিংয়ের শুরু এবং শেষে খালি স্থানটি মুছতে পারেন। যদি স্ট্রিংটি "" বার্তাটি "ত্রুটি" ফেরত দেয় তবে আপনি একটি স্ট্রিংটি আটকে রেখেছেন

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();
}

দয়া করে আপনার কোডটির একটি সংক্ষিপ্ত ব্যাখ্যা যুক্ত করুন।
Terru_theTerror

stackoverflow.com/questions/61766882/… আপনি কি আমার সমস্যাটি সম্পর্কে আমাকে সাহায্য করতে পারেন ??
সানি

0
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");

}

পাঁচটি সম্পাদনা পাঠ্যের জন্য এটি করুন


0

আপনি ব্যবহার করতে পারেন 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!");
                }
            }
        }
    });


0

আমি বাটারনিফ তালিকার বাইন্ডিং ব্যবহার এবং তারপরে তালিকায় ক্রিয়া প্রয়োগ করতে পছন্দ করি । উদাহরণস্বরূপ, এডিটেক্সটসের ক্ষেত্রে, আমার কাছে একটি ইউটিলিটি শ্রেণিতে নিম্নলিখিত কাস্টম ক্রিয়া সংজ্ঞায়িত করা হয়েছে (এই ক্ষেত্রে 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());
    }
};

এবং ভিউ কোডে, আমি সম্পাদনার তালিকাটিকে একটি তালিকায় আবদ্ধ করি এবং যখন ভিউগুলি পরীক্ষা করতে হবে তখন ক্রিয়াগুলি প্রয়োগ করি।

@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();
}

এবং অবশ্যই এই প্যাটার্নটি কোনও সংখ্যক ভিউতে কোনও সম্পত্তি চেক করার জন্য প্রসারযোগ্য। একমাত্র নেতিবাচকতা, যদি আপনি এটি এটিকে বলতে পারেন তবে তা হল ভিউগুলির অপ্রয়োজনীয়তা। অর্থ, Editডিটেক্সটগুলি ব্যবহার করতে, আপনাকে সেগুলিকে একক ভেরিয়েবলের সাথেও আবদ্ধ করতে হবে যাতে আপনি নাম অনুসারে তাদের রেফারেন্স করতে পারেন বা তালিকার অবস্থানে ( edits.get(0)ইত্যাদি) আপনাকে সেগুলি উল্লেখ করতে হবে । ব্যক্তিগতভাবে, আমি কেবল তাদের প্রত্যেককে দু'বার বেঁধে রাখি, একবার একবারে একটি পরিবর্তনশীল এবং একবারে তালিকায় এবং যেটি উপযুক্ত তা ব্যবহার করি।


0

সম্পাদনা পাঠ্য খালি খালি এই সহজ উপায় চেষ্টা করুন:

String star = editText.getText().toString();

if (star.equalsIgnoreCase("")) {
  Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show();
}

কেন মামলা উপেক্ষা ?!
টিমা

0

এটি চেষ্টা করে দেখুন: এটি কোটলিনে

//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()
    }
}

ধন্যবাদ


0

নিম্নলিখিত এক বিবৃতিতে আমার জন্য কাজ করে:

if(searchText.getText().toString().equals("")) 
    Log.d("MY_LOG", "Empty");

প্রথমে আমি একটি পাঠ্য পুনরুদ্ধার করি EditTextএবং তারপরে এটিকে স্ট্রিংয়ে রূপান্তর করি এবং অবশেষে পদ্ধতিটি ""ব্যবহার করে এর সাথে তুলনা করি .equals


0

এই ফাংশন আমার জন্য কাজ

বেসরকারী অকার্যকর চেকম্পফর্ম () {

    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();
            }
            }
            }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.