Печать Лонг и Лат - PullRequest
       13

Печать Лонг и Лат

0 голосов
/ 03 января 2012

В течение последних двух дней я пытался напечатать свой длинный и длинные координаты, я нарезал и изменил код, чтобы он заработал, сейчас немного путаница и не понимаю, почему он не будет работаю, я новичок в Android Development, пока изучаю книгу (Beginning Android Development), но она не затрагивает эту тему, любая помощь будет принята с благодарностью.

Он компилируется, и я не получаю никаких ошибок, однако он не печатает в поля EditText в приложении, определенные в main.xml.

Вот мой код для файла Java:

       package com.emergency;

import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Context;
import android.location.LocationManager;
import android.location.Criteria;

        public class EmergencyLocation extends Activity implements LocationListener {
            private TextView latitudeField;
            private TextView longitudeField;
            private LocationManager locationManager;
            private String provider;

            /** Called when the activity is first created. **/
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                latitudeField = (TextView) findViewById(R.id.long_lat1);
                longitudeField = (TextView) findViewById(R.id.long_lat2);

                // Get the location manager
                locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                // Define the criteria how to select the location provider -> use
                // default
                Criteria criteria = new Criteria();
                provider = locationManager.getBestProvider(criteria, false);
                locationManager.requestLocationUpdates(provider, 0, 0, this);
                Location location = locationManager.getLastKnownLocation(provider);
                onLocationChanged(location);
            }

            @Override
            protected void onDestroy() {
                super.onDestroy();
                locationManager.removeUpdates(this);
            }

            @Override
            public void onLocationChanged(Location location) {
               if (location != null) {
                   System.out.println("Provider " + provider + " has been selected.");
                   int lat = (int) (location.getLatitude());
                   int lng = (int) (location.getLongitude());
                   latitudeField.setText(String.valueOf(lat));
                   longitudeField.setText(String.valueOf(lng));
                   /*Toast.makeText(EmergencyLocation.this, 
                           "Longitude " + longitudeField + "Latitude " + latitudeField, Toast.LENGTH_LONG).show();*/



                   //getting longitude to display in an EditText box  
                   /*EditText lngtude = (EditText) findViewById(R.id.longitudeField);
                     lngtude.setText(String.valueOf(lng));

                   EditText lattude = (EditText) findViewById(R.id.latitudeField);   
                     lattude.setText(String.valueOf(lat)); */

                   EditText lngtude = (EditText) findViewById(R.id.longitudeField);
                   lngtude.setText(String.valueOf(lng), TextView.BufferType.EDITABLE);

                   EditText lattude = (EditText) findViewById(R.id.latitudeField);   
                   lattude.setText(String.valueOf(lat), TextView.BufferType.EDITABLE);



               } else {
                   latitudeField.setText("Provider not available");
                   longitudeField.setText("Provider not available");
               }
            }

            @Override
            public void onProviderDisabled(String provider) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onProviderEnabled(String provider) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onStatusChanged(String provider, int status,
                    Bundle extras) {
                // TODO Auto-generated method stub

            }


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

                    Button simpleBtn = (Button) findViewById(R.id.location);
                    simpleBtn.setOnClickListener(new View.OnClickListener() {*/


                 }
                ;

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Вы не должны вызывать onLocationChanged () из кода.Этот метод запускается, когда местоположение действительно меняется.В эмуляторе вы должны смоделировать изменение местоположения, отправляя координаты из перспективы DDMS или используя команду geo fix в сеансе telnet.

0 голосов
/ 03 января 2012

Я не верю, что вы используете EditText.setText правильно.См. Также этот пост.

EditText lngtude = (EditText) findViewById(R.id.longitudeField);
lngtude.setText(String.valueOf(lng), TextView.BufferType.EDITABLE);

EditText lattude = (EditText) findViewById(R.id.latitudeField);   
lattude.setText(String.valueOf(lat), TextView.BufferType.EDITABLE);
...