[JAVA] Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen

Basierend auf dem technischen Buch habe ich eine einfache Kartenanzeigeanwendung erstellt.

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 {

    //Erhalten Sie Längen- und Breitengradinformationen von Ihrem aktuellen Standort
    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);

//Ruft den Inhalt des TextView-Felds ab, in dem der Breiten- und Längengrad angezeigt wird.
        _tvLatitude = findViewById(R.id.tvLatitude);
        _tvLongitude = findViewById(R.id.tvLongitude);

//LocationManager-Objekt abrufen
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

//Generieren Sie ein Listener-Objekt, wenn die Positionsinformationen aktualisiert werden
        GPSLocationListener locationListener = new GPSLocationListener();

//Beginnen Sie mit der Verfolgung von Standortinformationen
        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);
    }


//Was passiert, wenn Sie die Kartensuchtaste drücken?
    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", "Fehler bei der Konvertierung von Suchbegriffen", ex);
        }
    }

//Was passiert, wenn Sie die Kartenanzeigetaste drücken?
    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">Karten-App</string>
    <string name="bt_map_search">Kartensuche</string>
    <string name="tv_current_title">Aktueller Standort</string>
    <string name="tv_latitude_title">Breite:</string>
    <string name="tv_longitude_title">Längengrad:</string>
    <string name="bt_map_current">Kartenanzeige</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

Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, eine einfache Gesichtserkennungs-Android-Anwendung mit OpenCV zu erstellen
Ich habe versucht, eine Datenbankverbindung in der Android-Entwicklung zu verwenden
Ich habe ein Symbol, das in Android Studio nicht aufgelöst werden kann
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Ich habe versucht, TabLayout unter Android eine Trennlinie hinzuzufügen
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich möchte eine Parkettdatei auch in Ruby erstellen
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Erstellen Sie eine neue App mit Rails
Versuchen Sie, eine Server-Client-App zu erstellen
Ich habe eine passende App erstellt (Android App)
[Android] Ich habe eine Schrittzähler-App erstellt.
So erstellen Sie ein Wear OS von Google App-Projekt unter Android Studio 3.0 oder höher
Erstellen Sie ein klares Zeitranking mit der Echtzeitdatenbank von Firebase (Android-App)
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Ich habe ein Kalenderproblem mit Ruby versucht
Erstellen Sie eine TODO-App in Java 7 Create Header
Ich habe eine Taschenrechner-App für Android erstellt
Ich habe eine Janken App mit Android gemacht
Von Java nach C und von C nach Java in Android Studio
Ich habe eine Frage zu Android Studio.
Ich habe versucht, eine Formel in Javadoc einzubetten
Verwendung von ExpandableListView in Android Studio
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
Riot (Chat App) Entwicklung (Einstellungen) in Android Studio
Beachten Sie, dass Junit 4 zu Android Studio hinzugefügt wurde
Erstellen Sie mit Spring Boot eine einfache Such-App
Ich habe versucht, polymorph in Nogizaka zu implementieren.
[Android] Erstellen Sie eine neue Klasse, indem Sie ImageView erben
Ich habe versucht, die Sitzung in Rails zu organisieren
3 Möglichkeiten zum Importieren von Bibliotheken in Android Studio
Erstellen Sie in Eclipse ein einfaches Stapelverarbeitungsframework.
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
So erstellen Sie ein Thema in Liferay 7 / DXP