在 Android 中获取 Activity 内部适配器
Getting the Activity inside Adapter in Android
我正在尝试访问我的 Imageview 所在的 activity,因此我可以使用 SVG 类型图像的 URL 并使用 GlideToVectorYou 库将其显示给用户。
GlideToVectorYou.justLoadImage(activity, IMAGE_URI, targetImageView)
但是当我尝试使用 R.layout.activityname 访问 activity 时,出现语法错误。
这是我正在使用的代码
Uri myurl = Uri.parse(match.getFlag());
GlideToVectorYou.justLoadImage(R.layout.item_basketball, myurl, iv_location);
谢谢!
R.layout.item_basketball
只是您的 activity 布局的整数 ID - 而不是 activity 实例本身。如果你想在你的适配器中使用 activity ,你需要在构建适配器时将其传入并将其保存为 class 成员(下面的示例),或者检查你的适配器基数是否 class 已经可以通过 getActivity()
或 getContext()
或类似方法提供。
class MyAdapter(private val activity: Activity) : BaseAdapter() {
fun someMethod() {
// then you can access "activity" in your adapter methods
GlideToVectorYou.justLoadImage(activity, IMAGE_URI, targetImageView)
}
}
当你在你的 Activity 中创建它时,你只需做这样的事情
val adapter = MyAdapter(this)
您需要 activity 参考资料。 R.layout.somethinghere 是布局参考。
在您的适配器构造函数中添加一个 activity 参数并在适配器内部使用它。
如果您从 activity 调用适配器构造函数,只需将“this”作为参数传递。如果从片段调用,使用“requireActivity”(如果使用 kotlin)或类似方法(例如 getActivity)如果使用 Java
我正在尝试访问我的 Imageview 所在的 activity,因此我可以使用 SVG 类型图像的 URL 并使用 GlideToVectorYou 库将其显示给用户。
GlideToVectorYou.justLoadImage(activity, IMAGE_URI, targetImageView)
但是当我尝试使用 R.layout.activityname 访问 activity 时,出现语法错误。 这是我正在使用的代码
Uri myurl = Uri.parse(match.getFlag());
GlideToVectorYou.justLoadImage(R.layout.item_basketball, myurl, iv_location);
谢谢!
R.layout.item_basketball
只是您的 activity 布局的整数 ID - 而不是 activity 实例本身。如果你想在你的适配器中使用 activity ,你需要在构建适配器时将其传入并将其保存为 class 成员(下面的示例),或者检查你的适配器基数是否 class 已经可以通过 getActivity()
或 getContext()
或类似方法提供。
class MyAdapter(private val activity: Activity) : BaseAdapter() {
fun someMethod() {
// then you can access "activity" in your adapter methods
GlideToVectorYou.justLoadImage(activity, IMAGE_URI, targetImageView)
}
}
当你在你的 Activity 中创建它时,你只需做这样的事情
val adapter = MyAdapter(this)
您需要 activity 参考资料。 R.layout.somethinghere 是布局参考。
在您的适配器构造函数中添加一个 activity 参数并在适配器内部使用它。
如果您从 activity 调用适配器构造函数,只需将“this”作为参数传递。如果从片段调用,使用“requireActivity”(如果使用 kotlin)或类似方法(例如 getActivity)如果使用 Java