【发布时间】:2018-11-05 21:46:23
【问题描述】:
我创建应用程序来获取用户位置的坐标,如纬度和经度,所以我使用 play-service-location,我的程序代码如下:
import android.location.Location;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationServices;
public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
private Location mLastLocation;
private Button btLocation;
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupGoogleAPI();
// initialize button
btLocation = (Button) findViewById(R.id.bt_getLocation);
btLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mLastLocation != null) {
Toast.makeText(MainActivity.this," Get Location \n " +
"Latitude : "+ mLastLocation.getLatitude()+
"\nLongitude : "+mLastLocation.getLongitude(), Toast.LENGTH_LONG).show();
}
}
});
}
private void setupGoogleAPI(){
// initialize Google API Client
mGoogleApiClient = new GoogleApiClient
.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
@Override
protected void onStart() {
super.onStart();
// connect ke Google API Client ketika start
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
// disconnect ke Google API Client ketika activity stopped
mGoogleApiClient.disconnect();
}
@Override
public void onConnected(Bundle bundle) {
// get last location ketika berhasil connect
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if (mLastLocation != null) {
Toast.makeText(this," Connected to Google Location API", Toast.LENGTH_LONG).show();
}
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
}
如上所见,我用toast来显示坐标,问题是我在尝试添加setText显示坐标时,出现错误
错误:没有找到适合 setText(double) 方法的方法 TextView.setText(CharSequence) 不适用(参数不匹配; double 不能转换为 CharSequence) 方法 TextView.setText(int) 不适用(参数不匹配;可能 从 double 到 int 的有损转换
我试了好几天,结果总是报错,怎么在setText中显示坐标,在textView中可以看到坐标?
【问题讨论】:
-
TextView 在你的代码中的位置?
标签: android google-maps location settext android-fusedlocation