- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的 MainActivity.java:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new GetCurrentLocation();
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 10, locationListener);
}
这是我的 GetCurrentLocation.java:
import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.google.android.gms.location.LocationListener;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
public class GetCurrentLocation extends Activity implements LocationListener {
String longitude;
String latitude;
String cityName;
public void onLocationChanged(Location loc) {
//editLocation.setText("");
//pb.setVisibility(View.INVISIBLE);
Toast.makeText(
getBaseContext(),
"Location changed: Lat: " + loc.getLatitude() + " Lng: "
+ loc.getLongitude(), Toast.LENGTH_SHORT).show();
longitude = "Longitude: " + loc.getLongitude();
//Log.v(TAG, longitude);
latitude = "Latitude: " + loc.getLatitude();
//Log.v(TAG, latitude);
/*------- To get city name from coordinates -------- */
//String cityName = null;
Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());
List<Address> addresses;
try {
addresses = gcd.getFromLocation(loc.getLatitude(),
loc.getLongitude(), 1);
if (addresses.size() > 0)
System.out.println(addresses.get(0).getLocality());
cityName = addresses.get(0).getLocality();
}
catch (IOException e) {
e.printStackTrace();
}
//editLocation.setText(s);
}
//@Override
public void onProviderDisabled(String provider) {}
//@Override
public void onProviderEnabled(String provider) {}
//@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
我得到的错误是:
Error:(40, 24) error: no suitable method found for requestLocationUpdates(String,int,int,com.google.android.gms.location.LocationListener)
method LocationManager.requestLocationUpdates(long,float,Criteria,PendingIntent) is not applicable
(actual argument String cannot be converted to long by method invocation conversion)
method LocationManager.requestLocationUpdates(String,long,float,PendingIntent) is not applicable
(actual argument com.google.android.gms.location.LocationListener cannot be converted to PendingIntent by method invocation conversion)
method LocationManager.requestLocationUpdates(long,float,Criteria,android.location.LocationListener,Looper) is not applicable
(actual and formal argument lists differ in length)
method LocationManager.requestLocationUpdates(String,long,float,android.location.LocationListener,Looper) is not applicable
(actual and formal argument lists differ in length)
method LocationManager.requestLocationUpdates(String,long,float,android.location.LocationListener) is not applicable
(actual argument com.google.android.gms.location.LocationListener cannot be converted to android.location.LocationListener by method invocation conversion)
我对应该修复代码的哪一部分一无所知,我尝试用谷歌搜索但没有找到相关的解决方案。
最佳答案
您使用了错误的 LocationListener
类。您需要替换它:
import com.google.android.gms.location.LocationListener;
用这个:
import android.location.LocationListener;
com.google.android.gms.location
内容与作为 Google Play 服务一部分的 FusedLocationProviderApi
一起使用。
标准的 Android 位置信息在 android.location
中。
此外,您还有 GetCurrentLocation extends Activity
。但它并不是真正的 Activity
。您需要删除 extends Activity
子句。这将导致问题,因为您正在该类的某些方法中调用 getBaseContext()
。要解决此问题,请让 GetCurrentLocation
的构造函数采用 Context
参数并将其保存在私有(private)成员变量中。然后在需要 Context
而不是调用 getBaseContext()
时使用它。
在 MainActivity
中,当您创建一个新的 GetCurrentLocation
时,您可以这样做:
LocationListener locationListener = new GetCurrentLocation(this);
将 this
作为 Context
参数传递(Activity
扩展 Context
)。
关于java - 找不到适合 requestLocationUpdates 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28892120/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!