android - एंड्रॉइड साफ़ बटन के साथ सभी संपादन टेक्स्ट फ़ील्ड साफ़ करना




button android-edittext (7)

@ पिक्सी का जवाब बहुत अच्छा है लेकिन मैं इसे बेहतर बनाना चाहता हूं।

यह विधि केवल तभी काम करती है जब सभी संपादन टेक्स्ट एक (एक) लेआउट में हों, लेकिन जब नेस्टेड लेआउट का गुच्छा होता है तो यह कोड उनके साथ सौदा नहीं करता है।

मेरे सिर को खरोंचने के बाद मैंने निम्नलिखित समाधान किए हैं:

private void clearForm(ViewGroup group) {       
    for (int i = 0, count = group.getChildCount(); i < count; ++i) {
        View view = group.getChildAt(i);
        if (view instanceof EditText) {
            ((EditText)view).setText("");
        }

        if(view instanceof ViewGroup && (((ViewGroup)view).getChildCount() > 0))
            clearForm((ViewGroup)view);
    }
}

इस विधि का उपयोग करने के लिए बस इसे निम्नलिखित फैशन में कॉल करें:

clearForm((ViewGroup) findViewById(R.id.sign_up));

जहां आप अपनी XML फ़ाइल के मूल लेआउट की आईडी के साथ अपने R.id.sign_up को प्रतिस्थापित कर सकते हैं।

मुझे उम्मीद है कि यह मेरे जैसे कई लोगों की मदद करेगा।

:)

मैं Clear Button साथ एक लेआउट में सभी EditText फ़ील्ड को कैसे साफ़ करूं? मेरे पास एक पंजीकरण गतिविधि है जिसमें लगभग 10 अलग-अलग EditTexts । मुझे पता है कि मैं जा सकता हूं और प्रत्येक विशेष रूप से संदर्भ ले सकता हूं और फिर set.Text("") कर सकता हूं। set.Text("") ; लेकिन मैं एक और गतिशील सुरुचिपूर्ण तरीके की तलाश में हूं। संभावित EditText आइटम्स प्रकारों की तलाश में सभी आइटमों के माध्यम से Layout और लूप को पकड़ें और फिर उन्हें "" सेट करें। यह सुनिश्चित नहीं है कि यह कैसे करें और इसके लिए वेब पर खोज करने की कोशिश की लेकिन कोई किस्मत नहीं। कोई नमूना कोड?


आप एक दृश्य समूह में सभी बच्चों के माध्यम से पुन: प्रयास कर सकते हैं और सभी EditText फ़ील्ड साफ़ कर सकते हैं:

ViewGroup group = (ViewGroup)findViewById(R.id.your_group);
for (int i = 0, count = group.getChildCount(); i < count; ++i) {
    View view = group.getChildAt(i);
    if (view instanceof EditText) {
        ((EditText)view).setText("");
    }
}

किसी भी कार्रवाई के क्लिक के बाद नीचे कदम

 ((EditText) findViewById(R.id.yoursXmlId)).setText("");

या सभी बच्चों को पुन: स्थापित करके सभी संपादन टेक्स्ट फ़ील्ड साफ़ करें:

ViewGroup group = (ViewGroup)findViewById(R.id.your_group);
for (int i = 0, count = group.getChildCount(); i < count; ++i) {
View view = group.getChildAt(i);
if (view instanceof EditText) {
    ((EditText)view).setText("");
}
}

या नीचे सरल कदम का उपयोग करें:

editText.getText().clear();

मददगार हो सकता है।


मेरे मामले में मैंने यह किया है।

public static void resetForm(ViewGroup group) {
    for (int i = 0, count = group.getChildCount(); i < count; ++i) {
        View view = group.getChildAt(i);
        if (view instanceof EditText) {
            ((EditText) view).getText().clear();
        }

        if (view instanceof RadioGroup) {
            ((RadioButton)((RadioGroup) view).getChildAt(0)).setChecked(true);
        }

        if (view instanceof Spinner) {
            ((Spinner) view).setSelection(0);
        }

        if (view instanceof ViewGroup && (((ViewGroup) view).getChildCount() > 0))
            resetForm((ViewGroup) view);
    }
}

यह बहुत आसान है। बटन के अपने काम में इसे टाइप करें-

finish();
startActivity(this,YourCurrentActivity.class);

इतना सरल है। स्वागत हे।


editText.getText().clear(); उपयोग करें editText.getText().clear();


   // Update answer

private void clearEditTextGroup(ViewGroup group){


    for(int i=0 ; i< group.getChildCount(); i++){
    View view = group.getChildAt(i);
    if(view instanceof EditText){

    // use one of clear code
    }

     if(view instanceof ViewGroup && (((ViewGroup)view).getChildCount() > 0))
            clearEditTextGroup((ViewGroup)view);

    }


   }

अपने edittext को साफ़ करने के लिए इस कोड में से एक का उपयोग करें

edittext.getText().clear();

या

edittext.setText(null);

या

edittext.setText("");




clear