[英]How to call a method inside a method, on click of a button? (Android Java)
[英]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.