在JavaAndroid中,如何通过点击按钮来调用Location方法?
对java非常陌生,但经过教程之类的学习,我了解了基础知识。我试图调用我创建的一个方法来查找设备的位置,然后将字符串附加到textview。如何通过单击按钮调用此方法?我试着把所有的代码都放在我的按钮里,这样当点击时它就可以运行了,但它不喜欢这样。按钮单击是否必须包含在JavaAndroid中,如何通过点击按钮来调用Location方法?,java,android,button,methods,location,Java,Android,Button,Methods,Location,对java非常陌生,但经过教程之类的学习,我了解了基础知识。我试图调用我创建的一个方法来查找设备的位置,然后将字符串附加到textview。如何通过单击按钮调用此方法?我试着把所有的代码都放在我的按钮里,这样当点击时它就可以运行了,但它不喜欢这样。按钮单击是否必须包含视图参数,或者是因为当我使用public onLocationChanged(Location-Location)时,我收到一个错误,说它找不到public onLocationChanged(View)。我试着做了public-o
视图
参数,或者是因为当我使用public onLocationChanged(Location-Location)
时,我收到一个错误,说它找不到public onLocationChanged(View)
。我试着做了public-onLocationChanged(视图、位置)
,但在logcat中得到了相同的错误。提前感谢您的帮助或反馈
编辑:我在android开发网站上看到“现在,当用户单击按钮时,android系统调用活动的自毁(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" />
假设您已经提到了按钮xml文件的android:onclick属性的onLocationChanged,那么在活动类中,让签名为onLocationChanged的方法(视图)发生更改 在里面,这个方法,你可以 if(view.getId()==R.id.yourButtonName){ //为位置添加上述代码,并将位置设置到textview
}是的,需要查看参数。如何在按钮中获取
位置
,然后单击或调用onLocationchanged
方法执行操作?只传递查看参数,有一个if条件来验证这个id是否与你的按钮id相同,然后你可以添加上面的代码。你可以看一下我的编辑并告诉我这是否是你所说的吗?非常感谢。
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) {
}