簡體   English   中英

如何組織以下簡單的Java代碼?

[英]How to organize the following simple Java code?

作為Java和Android的初學者,我知道Java允許您通過分成不同的文件,類等來編寫“干凈的”代碼。

現在,對於顯示我當前位置的活動,我具有以下工作代碼:

public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
private LocationCallback mLocationCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

    LocationRequest mLocationRequest = new LocationRequest();
    mLocationRequest.setInterval(10000);
    mLocationRequest.setFastestInterval(5000);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
            != PackageManager.PERMISSION_GRANTED) {
        //
    } else {
        mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback,
                null /* Looper */);
    }

    mLocationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) {
            if (locationResult == null) {
                return;
            }
            for (Location location : locationResult.getLocations()) {
                // Update UI with location data
                TextView tv = (TextView) findViewById(R.id.tv);
                Double latDouble = location.getLatitude();
                String latString = latDouble.toString();
                tv.setText(latString);
            }
        };
    };
}

我應該如何更改它,以使MainActivity看起來更整潔,並且大多數代碼都位於不同的文件中? 我需要創建一個新的Java類,然后從Main Activity中對其進行擴展嗎?

我想舉一個例子說明如何安排我的簡單代碼,使其與Java約定匹配。 我知道這可能是一個愚蠢的問題,但這會幫助我(可能還有更多的初學者)很多! 謝謝

我不會僅為此數量的代碼創建單獨的文件。 有時您必須問自己,代碼的哪一部分可以在其他情況下重用,然后您可能將其組織在單獨的抽象類,片段等中,並可能將其添加到其自己的模塊中並將其導入到不同的項目中。 通常,分離或分隔用於提高可重用性或可讀性。

從上面的代碼中,您可以創建一種方法來初始化您的位置請求。

例如。

public void initLocationRequest (LocationRequest request, Double millisInterval, Double millisFastestInterval, int priority) {
    request.setInterval(millisInterval);
    mLocationRequest.setFastestInterval(millisFastestInterval);
    mLocationRequest.setPriority(priority);
}

那么您就可以這樣稱呼它:

initLocationRequest (10000, 5000, LocationRequest.PRIORITY_HIGH_ACCURACY); 

如果您擁有許多可在各種活動中重用的方法,則可以創建一個類(例如LocationUtils)並將所有這些方法添加為public static 然后從您的活動中,您將其稱為:

LocationUtils.yourMethodName(yourMethodVariable);

暫無
暫無

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

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