2014-11-23 2 views
0

У меня нет ничего нового в Android, поэтому, пожалуйста, извините мой простой вопрос.Сделать onFocusChange работает для `EdiText` - андроид

Я пытаюсь создать регистрационную форму с тремя простыми полями: полное имя, адрес электронной почты и номер телефона.

мне нужно 2 простых вещей, чтобы сделать:

1) Я хочу, когда пользователь закончил просмотр записи поля ошибка оповещения (editText.setError (ERRMSG)) появляется. Например, когда пользователь вводит следующее поле, если в предыдущем поле есть ошибка, появляется сообщение об ошибке. Где следует вставить функцию? На данный момент я пишу его внутри функции public void afterTextChanged (Editable s), но он показывает ошибку предупреждения, когда пользователь печатает и продолжает отображаться, пока то, что он написал, не соответствует проверке.

2) Если пользователь допустил ошибку в определенном поле и смог ее исправить, я хочу показать поле с положительным значком (например, зеленым отмеченным значком), что означает, что его исправление было принято.

Я использую onFocusChange(), но это не работает для меня. Что я делаю неправильно?

Пожалуйста, расскажите мне мой код и большое спасибо за вашу драгоценную помощь.

public class Validation { 

    // Regular Expression 
    // you can change the expression based on your need 
    private static final String EMAIL_REGEX = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 
    // private static final String PHONE_REGEX = "\\d{3}-\\d{7}"; 
    // private static final String PHONE_REGEX = "(\\d{3})-(\\d{3})-(\\d{4})"; 
    private static final String PHONE_REGEX = "([0-9-()]+)"; 


    // Error Messages 
    private static final String REQUIRED_MSG = "Invalid name. You have to input at least 3 characters"; 
    private static final String EMAIL_MSG = "Invalid email"; 
    private static final String PHONE_MSG = "Invalid number"; 

    // call this method when you need to check email validation 
    public static boolean isEmailAddress(EditText editText, boolean required) { 
     return isValid(editText, EMAIL_REGEX, EMAIL_MSG, required); 
    } 

    // call this method when you need to check phone number validation 
    public static boolean isPhoneNumber(EditText editText, boolean required) { 
     return isValid(editText, PHONE_REGEX, PHONE_MSG, required); 
    } 

    /* 
    // return true if the input field is valid, based on the parameter passed 
    public static boolean isValid(EditText editText, String regex, String errMsg, boolean required) { 

     String text = editText.getText().toString().trim(); 
     // clearing the error, if it was previously set by some other values 
     editText.setError(null); 

     // text required and editText is blank, so return false 
     if (required && !hasText(editText)) return false; 

     // pattern doesn't match so returning false 
     if (required && !Pattern.matches(regex, text)) { 
      editText.setError(errMsg); 
      return false; 
     }; 

     if (required && !hasNumber(editText)) return false; 

     return true; 
    } 
    */ 

    // return true if the input field is valid, based on the parameter passed 
    public static boolean isValid(EditText editText, String regex, String errMsg, boolean bRequired) { 
     // text required and editText is blank, so return false 
     String sText = editText.getText().toString().trim(); 
     // clearing the error, if it was previously set by some other values 
     editText.setError(null); 
     if (sText.length() == 0) { 
      if (bRequired) { 
       editText.setError("*Field required"); 
       return false; 
      } 
     } else { 
      // filled field 
      // pattern doesn’t match so returning false 
      if (!Pattern.matches(regex, sText)) { 
       editText.setError(errMsg); 
       return false; 
      } 
     } 
     return true; 
    } 

    // check the input field has any text or not 
    // return true if it contains text otherwise false 
    public static boolean hasText(EditText editText) { 

     String text = editText.getText().toString().trim(); 
     editText.setError(null); 

     // length less that 3 means there is no text 
     if (text.length() <= 3) { 
      editText.setError(REQUIRED_MSG); 
      return false; 
     } 

     return true; 
    } 

    public static boolean hasNumber(EditText editText) { 

     String text = editText.getText().toString().trim(); 
     editText.setError(null); 

     // length less that 6 and more than 11 means not available 
     if (text.length() <= 6 && text.length() >= 11) { 
      editText.setError(PHONE_MSG); 
      return false; 
     } 

     return true; 
    } 

}//Validation 


public class ConTct extends Activity implements OnClickListener, OnTouchListener, OnFocusChangeListener{ 

    Button mButton; 
    EditText mFullName, mEmail, mDialZone, mPhone; 
    static WebView mWebView; 
    static ProgressBar mProgressBar; 
    EditText mBrokerId, mIP, mAreaPhonePrefix, mLastName, mPassWord, mCampaign, mSubCampaign, mCountryID, mCity, mAdress, mIsDemo; 


    public static final String myURL = "http://iphoneapp.optionrally.com:5757"; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.contct); 

     registerViews(); 


     mDialZone=(EditText)findViewById(R.id.countryPhonePrefix); 
     mWebView=(WebView)findViewById(R.id.myWebView); 
     mWebView.setVerticalScrollBarEnabled(true); 

     mWebView.getSettings().setUseWideViewPort(true); 
     mWebView.getSettings().setLoadWithOverviewMode(true); 

     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.setWebViewClient(new TheWebViewClient()); 
     mWebView.loadUrl("http://media-dispatcher.com/tds/mobile/?mdaf=FormInApp"); 



     mProgressBar=(ProgressBar)findViewById(R.id.myProgressBar); 


     GetCountryZipCode(); 

     setUpInvisibleFields(); 

     getIpAdressFromDevice(); 

     // getUserCountry(getApplicationContext()); 

     GetCountryIDCode(); 

     //Get a Tracker (should auto-report) 
     ((AppManager) getApplication()).getTracker(AppManager.TrackerName.APP_TRACKER); 
    }//oncreate() 

    public void setUpInvisibleFields(){ 
     mBrokerId=(EditText)findViewById(R.id.brokerId); 
     mIP=(EditText)findViewById(R.id.ip); 
     mAreaPhonePrefix=(EditText)findViewById(R.id.areaPhonePrefix); 
     mLastName=(EditText)findViewById(R.id.lastName); 
     mPassWord=(EditText)findViewById(R.id.password); 
     mCampaign=(EditText)findViewById(R.id.campaign); 
     mSubCampaign=(EditText)findViewById(R.id.subCampaign); 
     mCountryID=(EditText)findViewById(R.id.countryId); 
     mCity=(EditText)findViewById(R.id.city); 
     mAdress=(EditText)findViewById(R.id.address); 
     mIsDemo=(EditText)findViewById(R.id.isDemo); 


    }//setUpInvisibleFields 

    private void registerViews() { 
     mFullName = (EditText) findViewById(R.id.firstName); 
     mFullName.setFocusableInTouchMode(true); 
     mFullName.requestFocus(); 
     // TextWatcher would let us check validation error on the fly 
     mFullName.addTextChangedListener(new TextWatcher() { 
      public void afterTextChanged(Editable s) { 

       Validation.hasText(mFullName); 

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

     mEmail = (EditText) findViewById(R.id.email); 
     mEmail.setFocusableInTouchMode(true); 
     mEmail.requestFocus(); 
     mEmail.addTextChangedListener(new TextWatcher() { 
      // after every change has been made to this editText, we would like to check validity 
      public void afterTextChanged(Editable s) { 
       Validation.isEmailAddress(mEmail, true); 

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

     mPhone = (EditText) findViewById(R.id.phoneNumber); 
     mPhone.setFocusableInTouchMode(true); 
     mPhone.requestFocus(); 
     mPhone.addTextChangedListener(new TextWatcher() { 
      public void afterTextChanged(Editable s) { 

       Validation.isPhoneNumber(mPhone, true); 

       Validation.hasText(mPhone); 
      } 
      public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
      public void onTextChanged(CharSequence s, int start, int before, int count){} 
     }); 

     mButton = (Button) findViewById(R.id.SubmitRegisterButton); 
     mButton.setOnClickListener(this); 
    } 

    private void submitForm() { 
     // Submit your form here. your form is valid 
     Toast.makeText(this, "Submitting form...", Toast.LENGTH_LONG).show(); 
    } 

    private boolean checkValidation() { 
     boolean ret = true; 

     if (!Validation.hasText(mFullName)){ 
      ret = false; 

     } 

     if (!Validation.isEmailAddress(mEmail, true)){ 
      ret = false; 
     } 

     if (!Validation.isPhoneNumber(mPhone, true)){ 
      ret = false; 
     } 

     if (!Validation.hasText(mPhone)){ 
      mFullName.requestFocus(); 
      ret = false; 

     } 

     return ret; 
    }//checkValidation 


    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     // TODO Auto-generated method stub 
     if(!hasFocus){ 
      if(checkValidation()==true){ 
       mFullName.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.llgr, 0); 
       mEmail.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.llgr, 0); 
       mPhone.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.llgr, 0); 
      } 
     } 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 


     if (checkValidation()){ 
      submitForm(); 
      Intent i = new Intent(getApplicationContext(), ThanksZuser.class); 
      startActivity(i); 
      finish(); 
      //send to our crm 
      grabURL(myURL); 
     }else 
      Toast.makeText(ConTct.this, "Form contains error", Toast.LENGTH_LONG).show(); 
    } 




    private static class TheWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 

      return false; 

     } 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 
      mProgressBar.setVisibility(View.VISIBLE); 

     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 

      mProgressBar.setVisibility(View.GONE); 
     } 



    }//MyWebViewClient 


    @Override 
    protected void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 

     //Get an Analytics tracker to report app starts & uncaught exceptions etc. 
     GoogleAnalytics.getInstance(this).reportActivityStart(this); 


    }//onStart() 

    @Override 
    protected void onStop() { 
     // TODO Auto-generated method stub 
     super.onStop(); 

     //Stop the analytics tracking 
     GoogleAnalytics.getInstance(this).reportActivityStop(this); 


     sendDatatoGAfromOnStop(); 

    }//onStop() 



    public void sendDatatoGAfromOnStop(){ 

     String name = mFullName.getText().toString(); 
     name=name.replace("@", "|"); 
     name=name.replace(".", "!"); 


     String email = mEmail.getText().toString(); 
     email=email.replace("@", "|"); 
     email=email.replace(".", "!"); 


     String phone = mPhone.getText().toString(); 
     phone=phone.replace("@", "|"); 
     phone=phone.replace(".", "!"); 



     Tracker t = ((AppManager) getApplication()).getTracker(
       TrackerName.APP_TRACKER); 
     // Build and send an Event. 
     t.send(new HitBuilders.EventBuilder() 
     .setCategory("Ostp// " + name) 
     .setAction(email) 
     .setLabel(phone) 
     .build()); 
    } 

    public void sendDatatoGAfromOnTouch(){ 

     String name = mFullName.getText().toString(); 
     name=name.replace("@", "|"); 
     name=name.replace(".", "!"); 


     String email = mEmail.getText().toString(); 
     email=email.replace("@", "|"); 
     email=email.replace(".", "!"); 


     String phone = mPhone.getText().toString(); 
     phone=phone.replace("@", "|"); 
     phone=phone.replace(".", "!"); 



     Tracker t = ((AppManager) getApplication()).getTracker(
       TrackerName.APP_TRACKER); 
     // Build and send an Event. 
     t.send(new HitBuilders.EventBuilder() 
     .setCategory("Otch// " + name) 
     .setAction(email) 
     .setLabel(phone) 
     .build()); 
    } 




    // validating phone 
    private boolean isValidPhoneNumber(String phone2) { 

     boolean check; 

     if(phone2.length() < 6 || phone2.length() > 13){ 
      check = false; 
     }else{ 
      check = true; 
     } 
     return check; 
    } 


    // validating email 
    private boolean isValidEmail(String email) { 
     String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" 
       + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 

     Pattern pattern = Pattern.compile(EMAIL_PATTERN); 
     Matcher matcher = pattern.matcher(email); 
     return matcher.matches(); 
    } 

    // validating full name 
    private boolean isValidFullName(String pass) { 
     if (pass != null && pass.length() > 2) { 
      return true; 
     } 
     return false; 
    } 

    public boolean Is_Valid_Person_Name(EditText edt) throws NumberFormatException { 
     String valid_name; 
     if (edt.getText().toString().length() <= 2) { 
      edt.setError("Invalid name. You have to input at least 3 characters"); 
      valid_name = null; 
      return false; 
     } else if (!edt.getText().toString().matches("[a-zA-Z ]+")) { 
      edt.setError("Accept Alphabets Only."); 
      valid_name = null; 
      return false; 
     } else { 
      valid_name = edt.getText().toString(); 
      return true; 
     } 

    } 

    public String GetCountryZipCode(){ 
     String CountryID=""; 
     String CountryZipCode=""; 

     TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
     //getNetworkCountryIso 
     CountryID= manager.getSimCountryIso().toUpperCase(); 
     String[] rl=this.getResources().getStringArray(R.array.CountryCodes); 
     for(int i=0;i<rl.length;i++){ 
      String[] g=rl[i].split(","); 
      if(g[1].trim().equals(CountryID.trim())){ 
       CountryZipCode=g[0]; 
       break; 
      } 
     } 
     mDialZone.setText("+ " + CountryZipCode); 
     return CountryZipCode; 
    }//GetCountryZipCode 

    public String GetCountryIDCode(){ 
     String CountryID=""; 
     String CountryIDCode=""; 

     TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
     //getNetworkCountryIso 
     CountryID= manager.getSimCountryIso().toUpperCase(); 
     String[] rl=this.getResources().getStringArray(R.array.CountryIDCodes); 
     for(int i=0;i<rl.length;i++){ 
      String[] g=rl[i].split(","); 
      if(g[1].trim().equals(CountryID.trim())){ 
       CountryIDCode=g[0]; 
       break; 
      } 
     } 
     mCountryID.setText(CountryIDCode); 
     return CountryIDCode; 
    }//GetCountryZipCode 



    //if the user touched the submit, button, send the data to ga 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 

     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      /* 
      if (GeneralValidation()==true){ 

       sendDatatoGAfromOnTouch(); 
      } 

      */ 

      sendDatatoGAfromOnTouch(); 

     } else { 


     } 


     return false; 
    }//onTouch 



    //SEND DATA TO CRM 

    class myHttpPost extends AsyncTask<String, Void, String> implements HttpUriRequest{ 

     public myHttpPost() { 
      super(); 
      // TODO Auto-generated constructor stub 
     } 



     public myHttpPost(String url) { 
      // TODO Auto-generated constructor stub 
     } 


     @Override 
     protected String doInBackground(String... urls) { 


      // TODO Auto-generated method stub 

      BufferedReader inBuffer = null; 
      String result = "fail"; 
      String url = myURL; 

      // Create a new HttpClient 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost(url); 


      String l_ID, l_BrokerId, l_IP, l_SubBrokerID, l_AreaPhonePrefix, l_additionalPrefix, l_LastName, l_PassWord, l_terms, l_isLead, l_skinId, l_Campaign, l_languageId, l_SubCampaign, l_CountryID, l_City, l_Adress, l_IsDemo, l_birthday; 

      l_ID = "1010"; 
      l_BrokerId ="4"; 
      l_SubBrokerID="4"; 
      l_IP=mIP.getText().toString(); 
      l_AreaPhonePrefix= "972"; 
      l_LastName= "my last name"; 
      l_PassWord="my password"; 
      l_languageId="2"; 
      l_terms="on"; 
      l_Campaign="1824"; 
      l_SubCampaign="InsideApp"; 
      l_additionalPrefix="03"; 
      l_CountryID= mCountryID.getText().toString(); 
      l_City = " my city"; 
      l_Adress= " my adress"; 
      l_IsDemo="0"; 
      l_birthday="1900-01-01 00:00"; 
      l_isLead = "yes"; 
      l_skinId="2"; 


      StringBuilder stringBuilder = new StringBuilder(); 
      stringBuilder.append("<req>"); 
      stringBuilder.append(PrepareXmlItem("id", l_ID)); 
      stringBuilder.append(PrepareXmlItem("brokerId", l_BrokerId)); 
      stringBuilder.append(PrepareXmlItem("ip", l_IP)); 
      stringBuilder.append(PrepareXmlItem("subBrokerId", l_SubBrokerID)); 
      stringBuilder.append("<msg>"); 
      stringBuilder.append(PrepareXmlItem("areaPhonePrefix", l_AreaPhonePrefix)); 
      stringBuilder.append(PrepareXmlItem("lastName", l_LastName)); 
      stringBuilder.append(PrepareXmlItem("password", l_PassWord)); 
      stringBuilder.append(PrepareXmlItem("campaign", l_Campaign)); 
      stringBuilder.append(PrepareXmlItem("subCampaign", l_SubCampaign)); 
      stringBuilder.append(PrepareXmlItem("additionalPrefix", l_additionalPrefix)); 
      stringBuilder.append(PrepareXmlItem("countryId", l_CountryID)); 
      stringBuilder.append(PrepareXmlItem("city", l_City)); 
      stringBuilder.append(PrepareXmlItem("address", l_Adress)); 
      stringBuilder.append(PrepareXmlItem("languageId", l_languageId)); 
      stringBuilder.append(PrepareXmlItem("isDemo", l_IsDemo)); 
      stringBuilder.append(PrepareXmlItem("birthday", l_birthday)); 
      stringBuilder.append(PrepareXmlItem("terms", l_terms)); 
      stringBuilder.append(PrepareXmlItem("isLead", l_isLead)); 
      stringBuilder.append(PrepareXmlItem("skinId", l_skinId)); 

      stringBuilder.append(PrepareXmlItem("mobilePrefix", mDialZone.getText().toString())); 
      stringBuilder.append(PrepareXmlItem("mobileNumber", mPhone.getText().toString())); 
      stringBuilder.append(PrepareXmlItem("firstName", mFullName.getText().toString())); 
      stringBuilder.append(PrepareXmlItem("email", mEmail.getText().toString())); 
      stringBuilder.append("</msg>"); 
      stringBuilder.append("</req>"); 


      try { 

       StringEntity se = new StringEntity(stringBuilder.toString()); 
       se.setContentType("text/xml"); 
       httppost.setEntity(se); 



      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      // Execute HTTP Post Request 
      try { 
       HttpResponse response = httpclient.execute(httppost); 
       System.out.println("we are sending data " + response.toString()); 

       result="got it"; 

       InputStream ips = response.getEntity().getContent(); 
       BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8")); 
       if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK) 
       { 
        try { 
         throw new Exception(response.getStatusLine().getReasonPhrase()); 
        } catch (Exception e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
       StringBuilder sb = new StringBuilder(); 
       String s; 
       while(true) 
       { 
        s = buf.readLine(); 
        if(s==null || s.length()==0) 
         break; 
        sb.append(s); 

       } 
       buf.close(); 
       ips.close(); 
       return sb.toString(); 

      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       result = e.getMessage(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       result = e.getMessage(); 
      }finally{ 
       if (inBuffer != null) { 
        try { 
         inBuffer.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 


      return result; 
     } 




     @Override 
     public RequestLine getRequestLine() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public void addHeader(Header header) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void addHeader(String name, String value) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public boolean containsHeader(String name) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public Header[] getAllHeaders() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public Header getFirstHeader(String name) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public Header[] getHeaders(String name) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public Header getLastHeader(String name) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public HttpParams getParams() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public ProtocolVersion getProtocolVersion() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public HeaderIterator headerIterator() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public HeaderIterator headerIterator(String name) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public void removeHeader(Header header) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void removeHeaders(String name) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void setHeader(Header header) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void setHeader(String name, String value) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void setHeaders(Header[] headers) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void setParams(HttpParams params) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void abort() throws UnsupportedOperationException { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public String getMethod() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public URI getURI() { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public boolean isAborted() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

    } 

    private String PrepareXmlItem(String tag, String val){ 
     return "<" + tag + ">" + val + "</" + tag + ">"; 
    } 

    public void grabURL(String url){ 

     new myHttpPost().execute(myURL); 

    } 

    public String getIpAdressFromDevice(){ 
     WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); 
     WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
     int ipAddress = wifiInfo.getIpAddress(); 
     String ip = intToIp(ipAddress); 
     mIP.setText(ip); 
     return ip; 



    } 

    public String intToIp(int i) { 

     return ((i >> 24) & 0xFF) + "." + 
       ((i >> 16) & 0xFF) + "." + 
       ((i >> 8) & 0xFF) + "." + 
       (i & 0xFF) ; 
    } 


    /** 
    * Get ISO 3166-1 alpha-2 country code for this device (or null if not available) 
    * @param context Context reference to get the TelephonyManager instance from 
    * @return country code or null 
    */ 
    public String getUserCountry(Context context) { 
     try { 
      final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
      final String simCountry = tm.getSimCountryIso(); 
      if (simCountry != null && simCountry.length() == 2) { // SIM country code is available 
       return simCountry.toLowerCase(Locale.US); 
      } 
      else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable) 
       String networkCountry = tm.getNetworkCountryIso(); 
       if (networkCountry != null && networkCountry.length() == 2) { // network country code is available 
        mCountryID.setText(networkCountry); 
        return networkCountry.toLowerCase(Locale.US); 
       } 
      } 
     } 
     catch (Exception e) { } 

     return null; 
    } 


}//ConTct.class 

ответ

0

Возможно, вы захотите поэкспериментировать с функцией EditText.clearFocus(). Вызов его onCreate после того, как вы назначили EditText, может помочь.

Также проблема может быть в вашем XML-файле, поэтому, пожалуйста, поделитесь этим.

Добавление <requestFocus/> в ваш EditText также может помочь.

Например:

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height=wrap_content" 
    <requestFocus /> 
</EditText> 
Смежные вопросы