[JAVA] J'ai essayé de créer une application cartographique simple dans Android Studio

Sur la base du livre technique, j'ai créé une simple application d'affichage de carte.

MainActivity.java


package com.example.implicintintentsample;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {

    //Obtenez des informations de latitude et de longitude à partir de votre position actuelle
    private double _latitude = 0;
    private double _longitude = 0;

    private TextView _tvLatitude;
    private TextView _tvLongitude;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//Obtenez le contenu du champ TextView qui affiche la latitude et la longitude.
        _tvLatitude = findViewById(R.id.tvLatitude);
        _tvLongitude = findViewById(R.id.tvLongitude);

//Obtenir l'objet LocationManager
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

//Générer un objet écouteur lorsque les informations de position sont mises à jour
        GPSLocationListener locationListener = new GPSLocationListener();

//Commencer le suivi des informations de localisation
        if (ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION};
            ActivityCompat.requestPermissions(MainActivity.this,permissions, 1000);
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    }


//Que se passe-t-il lorsque vous appuyez sur le bouton de recherche de carte
    public void onMapSearchButtonClick(View view) {
        EditText etSearchWord = findViewById(R.id.etSearchWord);
        String searchWord = etSearchWord.getText().toString();

        try{
            searchWord = URLEncoder.encode(searchWord, "UTF-8");

            String uriStr = "geo:0,0?q=" + searchWord;
            Uri uri = Uri.parse(uriStr);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
        }

        catch(UnsupportedEncodingException ex){
            Log.e("IntentStartActivity", "Échec de la conversion des mots clés de recherche", ex);
        }
    }

//Que se passe-t-il lorsque vous appuyez sur le bouton d'affichage de la carte
    public void onMapShowCurrentButtonClick(View view){
        String uriStr = "geo:" + _latitude + "," + _longitude;
        Uri uri = Uri.parse(uriStr);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    }

    private class GPSLocationListener implements LocationListener {

        @Override
        public void onLocationChanged(Location location){
            _latitude = location.getLatitude();
            _longitude = location.getLongitude();
            _tvLatitude.setText(Double.toString(_latitude));
            _tvLongitude.setText(Double.toString(_longitude));
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras){}

        @Override
        public void onProviderEnabled(String provider){}

        @Override
        public void onProviderDisabled(String provider){}
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
        if(requestCode == 1000 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
            GPSLocationListener locationListener = new GPSLocationListener();
            if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
                return;
            }
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        }
    }

}

AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.implicintintentsample">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

strings.xml


<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <string name="app_name">Application de carte</string>
    <string name="bt_map_search">Recherche de carte</string>
    <string name="tv_current_title">Localisation actuelle</string>
    <string name="tv_latitude_title">latitude:</string>
    <string name="tv_longitude_title">longitude:</string>
    <string name="bt_map_current">Affichage de la carte</string>
</resources>

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/etSearchWord"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType=""
            android:autofillHints="" />

        <Button
            android:id="@+id/btMapSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onMapSearchButtonClick"
            android:text="@string/bt_map_search"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:text="@string/tv_current_title"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:text="@string/tv_latitude_title"
            />

        <TextView
            android:id="@+id/tvLatitude"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_weight="0.5"
            android:maxLines="1"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:text="@string/tv_longitude_title"
            />

        <TextView
            android:id="@+id/tvLongitude"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:maxLines="1"
            />

        <Button
            android:id="@+id/btMapShowCurrent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onMapShowCurrentButtonClick"
            android:text="@string/bt_map_current"
            />
    </LinearLayout>
</LinearLayout>

Recommended Posts

J'ai essayé de créer une application cartographique simple dans Android Studio
J'ai essayé de créer une application de clonage LINE
J'ai essayé de créer une compétence Clova en Java
[Rails] J'ai essayé de créer une mini application avec FullCalendar
java j'ai essayé de casser un simple bloc
J'ai essayé de créer une compétence Alexa avec Java
J'ai essayé de créer une simple application Android de reconnaissance faciale en utilisant OpenCV
J'ai essayé d'utiliser une connexion à une base de données dans le développement Android
J'ai un symbole de résolution impossible dans Android Studio
J'ai essayé de créer une fonction de connexion avec Java
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé d'ajouter une ligne de séparation à TabLayout sur Android
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Je veux créer un fichier Parquet même en Ruby
J'ai essayé d'implémenter une application web pleine de bugs avec Kotlin
J'ai créé un client RESAS-API en Java
J'ai essayé de créer un environnement de développement padrino avec Docker
Créer une nouvelle application avec Rails
Essayez de créer une application client serveur
J'ai créé une application correspondante (application Android)
[Android] J'ai créé une application de podomètre.
Comment créer un projet d'application Wear OS by Google sur Android Studio 3.0 ou supérieur
Créez un classement temporel clair avec la base de données en temps réel de Firebase (application Android)
J'ai essayé d'illuminer le sapin de Noël dans un jeu de la vie
J'ai essayé d'écrire du code comme une déclaration de type en Ruby
J'ai essayé de créer un environnement de développement Spring MVC sur Mac
J'ai essayé de créer une application simple en utilisant Dockder + Rails Scaffold
J'ai essayé un problème de calendrier avec Ruby
Créer une application TODO dans Java 7 Créer un en-tête
J'ai créé une application de calculatrice sur Android
J'ai créé une application Janken avec Android
De Java à C et de C à Java dans Android Studio
J'ai une question sur le studio Android.
J'ai essayé d'incorporer une formule dans Javadoc
Comment utiliser ExpandableListView dans Android Studio
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Développement (paramètres) Riot (application de chat) dans Android Studio
Notez que Junit 4 a été ajouté à Android Studio
Créez une application de recherche simple avec Spring Boot
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
[Android] Créez une nouvelle classe en héritant d'ImageView
J'ai essayé d'organiser la session en Rails
3 façons d'importer des bibliothèques dans Android Studio
Créez un cadre de traitement par lots simple dans Eclipse.
J'ai essayé de développer un outil de gestion des effectifs
J'ai essayé de développer un site Web pour étudier DUO3.0.
Essayez de créer un babillard en Java
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Comment créer un thème dans Liferay 7 / DXP