2017-06-01 85 views
0

我試圖讓從地理編碼位置的地址和它的工作,但是從地圖上標記取得地點時,點擊在一些設備中有一段時間不工作獲得的地址在某些設備不工作

和通過這種方法,但有時不工作,我的TextView設置文本等待獲取地址

private void getAddressFromLocation(final LatLng latlng, final TextView et) { 
    et.setText(R.string.text_waiting_for_get_address); 
    et.setTextColor(Color.GRAY); 
    new Thread(new Runnable() { 
     @SuppressLint("LongLogTag") 
     @Override 
     public void run() { 
      Geocoder gCoder = new Geocoder(getActivity()); 
      try { 
       final List<Address> list = gCoder.getFromLocation(
         latlng.latitude, latlng.longitude, 1); 
       if (list != null && list.size() > 0) { 
        address = list.get(0); 
        StringBuilder sb = new StringBuilder(); 
        if (address.getAddressLine(0) != null) { 
         if (address.getMaxAddressLineIndex() > 0) { 
          for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { 
           sb.append(address.getAddressLine(i)).append("-"); 
          } 
          sb.append(address.getCountryName()); 
         } else { 
          sb.append(address.getAddressLine(0)); 
         } 
        } 
        strAddress = sb.toString(); 
        strAddress = strAddress.replace("-null", ""); 
        strAddress = strAddress.replace("-ایران", ""); 
        strAddress = strAddress.replace("null", ""); 
        strAddress = strAddress.replace("Unnamed", ""); 
       } 
       if (getActivity() != null) { 
        getActivity().runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          if (!TextUtils.isEmpty(strAddress)) { 
           et.setFocusable(false); 
           et.setFocusableInTouchMode(false); 
           if (et.getTag().toString().equals("origin")) { 
            et.setText("Origin : " + strAddress + ""); 
           } else { 
            et.setText("Destination : " + strAddress + ""); 
           } 
           et.setFocusable(true); 
           et.setFocusableInTouchMode(true); 
          } else { 
           et.setText(""); 
          } 
         } 
        }); 
       } else { 
        return; 
       } 
      } catch (Exception exc) { 
       exc.printStackTrace(); 
      } 
     } 
    }).start(); 
    } 

回答

相關問題