У меня есть этот код в companydetails.java, и каждый раз, когда он падает

 case R.id.textView:
           if (!((String) this.companyMap.get("latitude")).equals("") || !
 ((String) this.companyMap.get("longitude")).equals("")) {
               intent = new Intent(this, MapActivity.class);
               intent.putExtra("latitude", Double.parseDouble((String) 
   this.companyMap.get("latitude")));
               intent.putExtra("longitude", Double.parseDouble((String) 
           this.companyMap.get("longitude")));
               intent.putExtra("company", (String) 
                this.companyMap.get("company"));
               break;
           }

И я получил эти ошибки

Журнал устройства

00:43:49 E AndroidRuntime : FATAL EXCEPTION: main
00:43:49 E AndroidRuntime : Process: com.mra.tnow, PID: 9186
00:43:49 E AndroidRuntime : java.lang.NumberFormatException: For input string: "28°23′50"
00:43:49 E AndroidRuntime : at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
00:43:49 E AndroidRuntime : at java.lang.Double.parseDouble(Double.java:547)
00:43:49 E AndroidRuntime : at com.marwan.tabuknow.CompanyDetails.onClick(CompanyDetails.java:368)
00:43:49 E AndroidRuntime : at android.view.View.performClick(View.java:5637)
00:43:49 E AndroidRuntime : at android.view.View$PerformClick.run(View.java:22429)
00:43:49 E AndroidRuntime : at android.os.Handler.handleCallback(Handler.java:751)
00:43:49 E AndroidRuntime : at android.os.Handler.dispatchMessage(Handler.java:95)
00:43:49 E AndroidRuntime : at android.os.Looper.loop(Looper.java:154)
00:43:49 E AndroidRuntime : at android.app.ActivityThread.main(ActivityThread.java:6121)
00:43:49 E AndroidRuntime : at java.lang.reflect.Method.invoke(Native Method)
00:43:49 E AndroidRuntime : at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
00:43:49 E AndroidRuntime : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
1
sally 28 Май 2017 в 03:43

2 ответа

Лучший ответ

Ваша проблема в том, что вы пытаетесь разобрать String в формате "28°23′50" в Double, и это будет невозможно.

  1. Одним из решений является сохранение ваших координат как (например, широта = 32,82108, долгота = -16,975873)

  2. Или используйте ваши координаты, но без разбора значений на Double.

0
Ricardo Faria 28 Май 2017 в 01:18

Вы пытаетесь разобрать 28 ° 23'50 до двойного. Передайте этот параметр как строку или преобразуйте в координату WGS-84, которая является двойной. Это зависит от ваших требований.

0
Gabriel 28 Май 2017 в 00:56