我正在按照example中的http://developer.android.com来构建一个简单的应用程序,以找到最后一个已知的位置。我在活动文件的以下代码片段中得到变量cannot find symbol variable
,mLastLocation
和mLatitudeText
的mLongitudeText
错误:
@Override
public void onConnected(Bundle connectionHint) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if (mLastLocation != null) {
mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude()));
mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude()));
}
}
样本中也没有定义变量。我怎样才能解决这个问题?
最佳答案
您需要在UI或main_activity.xml文件中定义提到的两个TextView小部件
....
<TextView
android:text="-"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview1"
/>
<TextView
android:text="-"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview2"
/>
....
..,然后在MainActivity.java文件的代码中引用它们。
对于mLastLocation,它必须是Location类型,因为函数getLastLocation返回Location类型。
public class MainActivity extends ActionBarActivity implements
ConnectionCallbacks, OnConnectionFailedListener {
Location mLastLocation;
TextView mLatitudeText,mLongitudeText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLatitudeText=(TextView)findViewById(R.id.textview1);
mLongitudeText=(TextView)findViewById(R.id.textview2);
}
...
@Override
public void onConnected(Bundle connectionHint) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if (mLastLocation != null) {
mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude()));
mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude()));
}
}
}