Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaAndroid中,如何通过点击按钮来调用Location方法?_Java_Android_Button_Methods_Location - Fatal编程技术网

在JavaAndroid中,如何通过点击按钮来调用Location方法?

在JavaAndroid中,如何通过点击按钮来调用Location方法?,java,android,button,methods,location,Java,Android,Button,Methods,Location,对java非常陌生,但经过教程之类的学习,我了解了基础知识。我试图调用我创建的一个方法来查找设备的位置,然后将字符串附加到textview。如何通过单击按钮调用此方法?我试着把所有的代码都放在我的按钮里,这样当点击时它就可以运行了,但它不喜欢这样。按钮单击是否必须包含视图参数,或者是因为当我使用public onLocationChanged(Location-Location)时,我收到一个错误,说它找不到public onLocationChanged(View)。我试着做了public-o

对java非常陌生,但经过教程之类的学习,我了解了基础知识。我试图调用我创建的一个方法来查找设备的位置,然后将字符串附加到textview。如何通过单击按钮调用此方法?我试着把所有的代码都放在我的按钮里,这样当点击时它就可以运行了,但它不喜欢这样。按钮单击是否必须包含
视图
参数,或者是因为当我使用
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) {

}