簡體   English   中英

適用於Android Studio應用的Java中的OOP

[英]OOP in java for Android studio app

我是Java的新手,盡管一般來說他在python和編程方面有大約多年的經驗。 盡管自從最近自學Java以來​​,我還是對面向對象的編程有所了解,但是我不了解一段代碼的工作方式/原因。 該代碼適用於在android studio中創建的android應用,我試圖在其中學習如何使用Google Maps API創建應用。 Java代碼是這樣的:

package com.example.harry.myapplication;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

據我了解,該代碼創建了該類,但是我看不到在哪里生成該類的對象才能運行該代碼。 我所有的編程經驗都來自python /過程編程。

除了不完全了解此代碼的工作方式之外,如果我要調用方法.getUiSettings(),我將在哪個對象上調用它?

您所擁有的是類定義-即屬於對象的一組屬性和方法,在本例中為MapsActivity 當您使用Android設備打開應用程序時,Android操作系統將讀取應用程序的AndroidManifest.xml以確定哪個活動是您應用程序的主要活動。 (如果您在Android Studio中進行了此操作,那么我猜想該活動將自動指定為主要活動,而您不必進行任何更改。)Android操作系統會創建該類的實例,然后調用方法的特定順序,以警告您的對象某些事情正在發生。

getUiSettings()GoogleMap對象的方法。 在活動的onCreate()方法中,調用getMapAsync() 這將啟動一個后台線程,以從Google下載地圖信息,而不會阻塞您的主線程。 完全接收到該信息后,將使用准備好的GoogleMap作為參數調用onMapReady() 然后,您可以保存該對象以供以后使用

mMap = googleMap;

如果要訪問地圖的UI設置,可以在地圖對象上調用方法

mMap.getUiSettings();

Android編碼很大程度上基於異步性和回調,一開始可能會有些混亂。 我同意@Vucko的觀點,也許您應該找到在線課程或更有經驗的程序員來學習。

地圖對象是由地圖片段異步創建的,並返回給偵聽器,即您的活動。 並且getUiSettings將在GoogleMap對象上調用。 如您在文檔中所見,它是對象的方法。

如評論中所述,SO可能不是解決此問題的地方。 我發現最近在堆棧交換網絡中有一個代碼檢查站點 也許更合適。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM