2011-05-05 8 views
5

अरे, मैं जब या तो इसकी सामग्री स्पष्ट करने के लिए मेरी editText खिड़की पाने के लिए कोशिश कर रहा हूँ: 1) यह अलग डेटा दर्ज करने reselected है या 2) एक बटन पूर्व निर्धारित इनपुट करने के लिए दबाया जाता है डेटाक्लियरिंग पहले EditText क्षेत्र में पाठ दर्ज किया

यह संकेत पाठ नहीं है। इस समय पूर्व निर्धारित डेटा इनपुट होने पर यह वहां रहता है और मैं इसे हटा नहीं सकता, यहां तक ​​कि हटाएं का उपयोग भी कर सकता हूं। मैंने ऑनक्लिक श्रोता में addboxBox.setText ("") डालने का प्रयास किया है और एक बूलेन का उपयोग करके addTextChangedListener (दोनों पहले और विधियों पर) को निर्धारित करने का प्रयास किया है कि कोड पहले ही इनपुट हो चुका है, लेकिन यह केवल इसे अनदेखा करता है।

foodBox.addTextChangedListener(new TextWatcher(){ 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { 
      addFood(); 
      valueAdded=true; 
     }   
    }); 


    dogButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (valueAdded==true){ 
       foodBox.setText(""); 
       setFood(0.0); 
      } 
      isClicked=true; 
      animal=1; 
      addFood(); 
      valueAdded=true;//value in the box 
       } 


    }); 


    catButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (valueAdded){ 
       foodBox.setText("");} 
      isClicked=true; 
      animal=2; 
      addFood(); 
      valueAdded=true; 
      } 

    }); 
      private void addFood() { 
    try{ 
     aClass aob = new aClass(); 
     setFood(0.0); 
     String a = this.foodBox.getText().toString(); 
     if(isClicked&&TextUtils.isEmpty(a)){ 
      if(animal==1){ 
       a=mob.getDog(); 
      } 
      if(animal==2){ 
       a=mob.getCat(); 
      } 
      this.foodBox.setText(a); 
      double d=Double.parseDouble(a); 
      setFood(d); 
     }else{ 
      if(TextUtils.isEmpty(a)){ 
      a="0"; 
     } 
     double d=Double.parseDouble(a); 
     setFood(d); 
     } 
    } 
     catch (Exception e){ 
     this.showAnswer.setText("Please input animals in numbers"); 
     addFood(); 
    } 
} 

धन्यवाद

उत्तर

7

Errr ...

केवल कोड मैं 1 प्राप्त करने के लिए उपयोग करें) है:

// Clear text when clicked 
    host.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      host.setText(""); 
     } 
    }); 

host सिर्फ एक EditText जा रहा है। ठीक काम करता है? मुझे लगता है कि आप इसे इससे अधिक जटिल बना रहे हैं।

+0

यह बहुत अजीब है। क्या यह एडफूड विधि में कोड के साथ कुछ करने के लिए हो सकता है? – Broo

+0

मैं टेक्स्ट चेंज किए गए श्रोता का उपयोग नहीं करता, खासकर ऐसा नहीं। आपके द्वारा मूल्यवान वैरिएबल वैरिएबल वास्तव में मूर्खतापूर्ण प्रतीत होता है, आपको यह सुनिश्चित करने के लिए 'foodBox.getText()। Length()' जैसे कुछ पर जांच करनी चाहिए ताकि संपादन टेक्स्ट क्षेत्र में डेटा हो। अपने डिजाइन पर पुनर्विचार करें। – Klaus

+0

"isClicked" से छुटकारा पाएं ... – Klaus

3

साफ़ करने के लिए जब साफ़ बटन क्लिक किया जाता है:

firstName = (EditText) findViewById(R.id.firstName); 

clear = (Button) findViewById(R.id.clearsearchSubmit); 

clear.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.clearsearchSubmit); 
     firstName.setText(""); 
    } 
}); 

यह मेरे लिए काम किया। आशा करता हूँ की ये काम करेगा।

0

1) ऑनक्लिक मेरे लिए काम नहीं करता क्योंकि मुझे क्लिकक्लिकर पर कॉल करने के लिए दो बार दबा देना पड़ा था। अन्य दृष्टिकोण setOnFocusChangeListener होगा()

editTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if(hasFocus){ 
        editTextView.getText().clear(); 
       } 
      } 
     }); 

2) ashim888 द्वारा दिए गए समाधान के लिए अच्छी तरह से काम करता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^