问题摘要
>
当我尝试将MapsActivity的上下文传递给mapFragment中的方法isGpsEnable()时,我得到了错误Unresolved引用:@MapsActivity
我有一个闪屏ctivity.kt清单上有
我所尝试过的
Androidanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="gr.mantis_project.obdLogger">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
<activity
android:name="gr.example.obdLogger.SplashActivity"
android:label="@string/title_activity_maps"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="gr.example.obdLogger.MapsActivity">
</activity>
</application>
</manifest>
地图ctivity.kt
package gr.example.obdLogger
class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMapClickListener {
override fun onMapReady(p0: GoogleMap?) {
}
override fun onMapClick(p0: LatLng?) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivitymainBinding =
DataBindingUtil.setContentView(this, R.layout.mapsactivity)
setSupportActionBar(findViewById(R.id.toolbar))
}
MAPFragment.kt
package gr.example.obdLogger
class MapFragment : Fragment(), OnMapReadyCallback {
private lateinit var mMapView: MapView
private lateinit var mMap: GoogleMap
private lateinit var mView: View
private lateinit var fusedLocationClient: FusedLocationProviderClient
private lateinit var lastLocation: Location
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
mMapView.onSaveInstanceState(outState)
isGpsEnable()
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_map, container, false)
mMapView = view?.findViewById(R.id.mapview) as MapView
mMapView.onCreate(savedInstanceState)
mMapView.getMapAsync(this)
fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireContext())
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
override fun onResume() {
super.onResume()
mMapView.onResume()
}
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
mMap.uiSettings.isZoomControlsEnabled = true
}
companion object {
private const val LOCATION_PERMISSION_REQUEST_CODE = 1
}
private fun isGpsEnable(): Boolean {
if (ActivityCompat.checkSelfPermission(
requireContext(), // **This works**
Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this@MapsActivity, // **This is unresolved**
Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
requestPermissions(
arrayOf(
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
),
LOCATION_PERMISSION_REQUEST_CODE
)
} else {
Log.e("DB", "PERMISSION GRANTED")
}
return true
}
}
这行不通<代码>映射活动不是片段的外部范围。您可以在此处阅读更多有关限定此
的信息
从MapFrarix到MapsActive没有内部依赖关系,因此不能将MapsActive引用为外部引用。外部引用只适用于内部类(注意lambda函数是匿名的内部类,因此您也可以使用this@
来引用外部作用域)。如果你需要一个上下文在你的应用程序,你可以调用nullSafe要求Context()
方法在MapFrapt或引用的MapsActive实例通过
(activity as MainActivity)
一个片段可以通过它的属性活动
访问它附加到的活动,这就是为什么(活动为Main活动)
工作
当使用可为空的值时,我喜欢使用?使用let
链接的运算符,例如context?。让{doStuff(it)}
这样您就安全了,不会得到nullptr异常
在开发新产品时,我创建了一个后端和前端项目。对于前端,我使用带有Typescript的角度框架。下面是一个问题,因为我对这门语言还不熟悉(几天前)。我的问题是关于回调以及如何避免“this”上下文中的显式传递。我已经阅读了一些资源,我将链接它们。 下面我将为HttpClient实现一个包装器。快速版本是使用插件架构(由角度路由支持)的模块进行流控制,最好是通过使用观察员和订阅者广播401之类的错误
在我的一个REST服务中,我使用Spring Security性来验证在头中传递的令牌。然而,spring无法找到“authorization”标头,尽管它在那里。当在测试中测试时,甚至在本地测试时,这都不是一个问题,但当我们部署到PROD时,我们就会遇到这个问题。 作为替代/变通方法,我删除了Spring Security性,而是尝试在实际endpoint中验证我的令牌,然后继续处理请求的其余部
问题内容: 如何传递上下文?我想打电话,如果在1000毫秒。我怎样才能做到这一点? 当我尝试上述操作时,指的是窗口。 问题答案: 编辑: 总而言之,早在2010年,当有人问这个问题时,解决此问题的最常用方法是保存对进行函数调用的上下文的引用,因为执行函数时要指向全局对象: 在一年前发布的ES5规范中,它引入了该方法,但最初的答案中并未建议使用该方法,因为该方法尚未得到广泛支持,您需要使用polyf
类似的问题没有解决我的问题:https://stackoverflow.com/a/36633892/2300773 在基于connect()的场景中使用 通过上下文传递存储区不起作用 由于react-router不将当前param作为上下文提供,所以我选择将当前param作为路由组件中的上下文添加。我可以一直访问组件树下的上下文,直到到达使用connect()设置的子组件为止。页面的初始呈现为子
问题内容: 有什么方法可以轻松解决此问题,或者我真的需要重写所有旧代码吗? PHP致命错误:第30行的…中的调用时传递引用已被删除 当变量在整个代码中作为引用传递给函数时,这种情况随处可见。 问题答案: 您应该在函数定义中通过引用表示调用,而不是实际调用。由于PHP在5.3版中开始显示弃用错误,因此我想重写代码是一个好主意。 从文档中: 函数调用上没有参考符号-仅在函数定义上。 仅函数定义就足以正
FileLoaderImportCircularReferenceException:在“/app/config/routing_dev.yml”(“/app/config/routing_dev.yml”)中检测到循环引用 我正在努力做到这一点:http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html#mor