2012-11-23 11 views
5

काम कर रही है मैंने दो संपादन टेक्स्ट पर सेट त्रुटि का कोड लागू किया है।आतंक संकेत गायब नहीं हो रहा है और खोज

  • बिना किसी शून्य या खाली मूल्य के किसी स्ट्रिंग को प्राप्त करने के लिए।
  • दूसरा शून्य या खाली मूल्य के बिना कोई स्ट्रिंग प्राप्त करने के लिए और कुछ डबल मान होना चाहिए।

कोड के रूप में लागू करने कि सभी काम कर अच्छा जा रहा है लेकिन कर रहे हैं जब मैं प्रवेश नहीं करता है और खोज बटन क्लिक करें त्रुटि पहले संपादन-बॉक्स में पॉप अप होता है कि उसके बाद के बाद इस प्रकार

import java.util.HashMap; 
import java.util.Map; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class SearchPlaces extends Activity { 
    EditText place; 
    EditText distance; 
    Button search; 
    static String _place; 
    static String _distance; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     place = (EditText) findViewById(R.id.place); 
     distance = (EditText) findViewById(R.id.distance); 
     search = (Button) findViewById(R.id.search); 
     search.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Map<String, String> validate = new HashMap<String, String>(); 
       _place = place.getText().toString(); 
       _distance = distance.getText().toString(); 
       validate.put("placename", _place); 
       validate.put("distancenumeric", _distance); 
       if (!validateInputInformation(validate)) { 
        return; 
       } 
       if ((_place == "" && _distance == "")) { 
        Toast.makeText(getApplicationContext(), 
          "Please fill all the information", 
          Toast.LENGTH_SHORT).show(); 
       } else { 
        _place = place.getText().toString(); 
        _distance = distance.getText().toString(); 
        Intent placedist = new Intent(getApplicationContext(), 
          MainActivity.class); 
        Bundle bundle = new Bundle(); 

        bundle.putString("place", _place); 
        bundle.putString("distance", _distance); 

        placedist.putExtras(bundle); 
        startActivity(placedist); 
       } 
      } 

      private boolean validateInputInformation(
        Map<String, String> validate) { 

       String l_place = validate.get("placename"); 
       if (l_place == null || l_place.equals("")) { 
        place.setError("Please enter the Place First"); 
        return false; 
       } 

       String l_distance = validate.get("distancenumeric"); 
       if (l_distance == null || l_distance.equals("")) { 
        distance.setError("Please enter the Distance First"); 
        return false; 
       } 
       if (!isDoubleNumber(l_distance)) { 
        distance.setError("Please enter Numeric Value"); 
        return false; 
       } 

       return true; 

      } 
      private boolean isDoubleNumber (String num) { 
       try { 
        Double.parseDouble(num); 
       } catch (NumberFormatException nfe) { 
        return false; 
       } 
       return true; 
      } 
     }); 
    } 
} 

है जब मैं आवश्यक मानों के रूप में सही मानों को पुन: प्रस्तुत करें, तो त्रुटि अधिसूचना गायब नहीं होती है लेकिन खोज बटन अच्छा काम करता है।

कृपया मेरी मदद करें ताकि सेट-त्रुटि अधिसूचना को पहले संपादन बॉक्स से हटाया जा सके।

उत्तर

5

if ((_place == "" && _distance == "")) के बजाय कोड लाइन नीचे लिखें, यह आपकी समस्या का समाधान करेगा।

if (_place.equals("") && _distance.equals("")) 
+0

नहीं, जिसने मेरी दूसरी समस्या हल की लेकिन यह अभी भी लंबित है –

+0

@VarunVishnoi आपकी दूसरी समस्या क्या है? –

+0

पहला संपादन टेक्स्ट में स्ट्रिंग देने के बाद आतंकवादी लाल चिह्न गायब नहीं हो रहा है लेकिन सभी काम अच्छे चल रहे हैं। लेकिन वह लाल त्रुटि –

4

मैं अपनी पोस्ट पर ठोकर क्योंकि मैं एक ही समस्या का सामना करना पड़ रहा है: "जब मैं खाली एक मैदान छोड़ कर, मेरे setError दिखाता है लेकिन जब मैं में टाइप करना आरंभ आइकन और पाठ नहीं निकाले जाते"

यह व्यवहार अजीब है और मुझे पूरा यकीन है कि यह एंड्रॉइड पर एक बग है क्योंकि अगर मैं अपने फ़ील्ड के इनपुट टाइप को "टेक्स्ट एड्रेसइमेल" या "टेक्स्टपास्वर्ड" पर काम करता हूं लेकिन यह तब नहीं होता जब मेरा इनपुट "टेक्स्ट" न हो, textCapWords "," textPersonName "...

समाधान प्रोग्रामेटिक रूप से इनपुट टाइप करने के लिए है टाइप

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

registrationName.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS | InputType.TYPE_TEXT_VARIATION_PERSON_NAME); 
+0

यह एक अजीब बग लॉल है धन्यवाद आपकी मदद यह मेरे लिए काम करती है। –

0

मुझे भी इस मुद्दे का सामना करना पड़ रहा है। इस त्रुटि से छुटकारा पाने के लिए, बस कॉल करें: myEditText.Error = null;

आशा है कि इससे मदद मिलती है!

हैप्पी कोडिंग!