EditText преобразовать в geoPoint

Ответить
Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

EditText преобразовать в geoPoint

Сообщение Digetix » 06 ноя 2012, 12:17

Доброго времени суток. Как из двух эдиттекстов взять цифры введенные пользователем и преобразовать их в geoPoint, то есть в координаты для отображения на карте?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: EditText преобразовать в geoPoint

Сообщение rezak90 » 06 ноя 2012, 13:20

в конструктор передать координаты
R.id.team
Политика на форуме запрещена

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: EditText преобразовать в geoPoint

Сообщение Digetix » 07 ноя 2012, 17:26

rezak90 писал(а):в конструктор передать координаты
А можете подсказать код?

Код: Выделить всё

package ru.example.placeobject;

import com.parse.Parse;
import com.parse.ParseACL;
import com.parse.ParseGeoPoint;
import com.parse.ParseObject;
import com.parse.ParseUser;


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
     Button button1;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        
        Parse.initialize(this, "ключ", "ключ");   
        final EditText gorodText = (EditText)findViewById(R.id.editText1);
        final EditText Shirota = (EditText)findViewById(R.id.editText2);
        final EditText Dolgota = (EditText)findViewById(R.id.editText3);
         }
     
        
        OnClickListener buttonAdd = new OnClickListener(){ 
            public void onClick(View v){

        ParseUser.enableAutomaticUser();
        ParseACL defaultACL = new ParseACL();
        ParseACL.setDefaultACL(defaultACL, true); 
        ParseObject PlaceObject = new ParseObject("PlaceObject");
        PlaceObject.put("location", point);
        PlaceObject.put("Town", gorodText.getText().toString());
        PlaceObject.saveInBackground();
             }
        };
        
        button1.setOnClickListener(buttonAdd);
}

    
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
Из Shirota и Dolgota нужно извлечь текст и сделать из него геопионты

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: EditText преобразовать в geoPoint

Сообщение rezak90 » 07 ноя 2012, 17:33

код конструктора? вы чего это... GeoPoint(String lat, String lon)
Для ленивых:

Код: Выделить всё

GeoPoint gp = new GeoPoint(Integer.parseInt(Shurota.getText().toString()), Integer.parseInt(Dolgota.getText().toString()))
R.id.team
Политика на форуме запрещена

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: EditText преобразовать в geoPoint

Сообщение Digetix » 07 ноя 2012, 18:15

rezak90 писал(а):код конструктора? вы чего это... GeoPoint(String lat, String lon)
Для ленивых:

Код: Выделить всё

GeoPoint gp = new GeoPoint(Integer.parseInt(Shurota.getText().toString()), Integer.parseInt(Dolgota.getText().toString()))
Ой, извините. Я просто только-только начинаю учить Java

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: EditText преобразовать в geoPoint

Сообщение Digetix » 07 ноя 2012, 23:28

Код: Выделить всё

GeoPoint gp = new GeoPoint(Integer.parseInt(Shirota.getText().toString()), Integer.parseInt(Dolgota.getText().toString()))
Этот конструктор выдает только целые числа, а нужно с определённым количеством знаков после точки. При вводе не целых чисел программа вылетает. ( напр., число 25.3698777)

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

Re: EditText преобразовать в geoPoint

Сообщение AndreyI » 08 ноя 2012, 04:31

Конструктор GeoPoint принимает координаты в микроградусах.
В документации вроде это написано четко
Constructs a GeoPoint with the given latitude and longitude, measured in microdegrees (degrees * 1E6).
Поэтому:
1. Читаем данные из полей.
2. Преобразуем их в тип float (числа с плавающей точкой)
3. Преобразуем в микроградусы (умножаем на миллион).
4. Приводим к типу int (оставшаяся дробная часть будет отброшена)
5. Подаем полученные значения в конструктор GeoPoint.

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

Ответить