我是Android的新手,正在使用GoogleMap进行项目。它是一个包含三个片段的应用程序:一个包含地图,一个包含餐厅列表(使用api的googleapi搜索)和一个带有同事列表的应用程序。 我想创建一个ModelView来保存我将在前两个片段中使用的餐厅列表。
在MainActivity中,我想获取用户的位置(使用FusedLocationProviderClient),然后在ViewModel中重新插入位置。
我的MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
key = getString(R.string.api_google_place_key);
mFusedLocationClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
my_location = location.getLatitude() + "," + location.getLongitude();
mModel = ViewModelProviders.of(this,new RestaurantViewModelFactory(key,my_location)).get(RestaurantViewModel.class);
}
}
});
configureToolBar();
configureDrawerLayout();
configureNavigationView();
initFragment();
configureBottomOnClick();
updateProfileData();
}
我有一个问题,因为该行中的this
:
mModel = ViewModelProviders.of(this,new RestaurantViewModelFactory(key,my_location)).get(RestaurantViewModel.class);
无法识别。
我怎么称呼我的MainActivity?
仅当FusedLocationProviderClient提供的Location成功时,我才想创建我的mModel。这就是为什么我将mModel放在OnSuccess内的原因。
感谢您的帮助。
答案 0 :(得分:0)
尝试用MainActivity.this
代替this
(指OnSuccessListener
):
mModel = ViewModelProviders.of(MainActivity.this, new RestaurantViewModelFactory(key,my_location)).get(RestaurantViewModel.class);`