簡體   English   中英

如何在Java Android中通過單擊按鈕來調用Location方法?

[英]How to call a Location method from a button click in Java Android?

Java很新,但是經過教程等之后,我了解了基礎知識。 我試圖調用創建的方法來查找設備的位置,然后將字符串附加到textview。 如何通過單擊按鈕調用此方法? 我嘗試將所有代碼放入按鈕中,以便單擊后即可運行,但事實並非如此。 單擊按鈕是否必須包含View參數,或者因為當我使用public onLocationChanged(Location location)出現錯誤,提示它找不到public onLocationChanged(View) 我試着在public onLocationChanged(View view, Location location)public onLocationChanged(View view, Location location)但是在logcat中遇到了同樣的錯誤。 在此先感謝您的幫助或反饋!

編輯:我在android開發網站上看到“現在,當用戶單擊按鈕時,Android系統會調用活動的selfDestruct(View)方法。為了使其正常工作,該方法必須是公共的,並且僅接受View作為其方法參數。” 當引用xml文件中的onClick參數時。 如果我不使用此參數,而是在java文件中使用onClickListener方法,可以使用Location嗎?


XML文件

<Button 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/GPS"
    android:id="@+id/vid_message_button"
    android:onCLick="onLocationChanged" />

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

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        provider = locationManager.getBestProvider(criteria, false);
        Location location = locationManager.getLastKnownLocation(provider);

}



public void onLocationChanged(Location location) {


    if (view.getId() == R.id.send_GPS_button) {

    double lat = (double) (location.getLatitude());
    double lng = (double) (location.getLongitude());
    float accuracy = (float) (location.getAccuracy());
    double alt = (double) (location.getAltitude());
    double speed = (double) (location.getSpeed());
    double heading = (double) (location.getBearing());

    messageLogTextView.append("Latitude: " + String.valueOf(lat) + "\n" +
                    "Longitude: " + String.valueOf(longi) + "\n" +
                    "Accuracy: " + String.valueOf(accuracy) + "\n" +
                    "Altitude: " + String.valueOf(alt) + "\n" +
                    "Speed: " + String.valueOf(speed) + "\n" +
                    "Heading: " + String.valueOf(heading) + "\n");

    }    

}

public void onSendGPSButtonClick(View view) {

}

假設您已經為Button的xml文件的android:onclick屬性提到了onLocationChanged,在您的活動類中,具有簽名為onLocationChanged(View view)的方法。

在里面,這種方法,你可以

如果(view.getId()== R.id.yourButtonName){

//添加上述代碼作為位置並將位置設置為textview

}

暫無
暫無

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

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