0

我需要PackageManager pm = context.getPackageManager();在 PagerAdapter 内部使用,但我不知道如何获取上下文。

public class MyPagerAdapter extends PagerAdapter {
     ...
     }

PagerAdapter 中的上下文如何?

4

3 回答 3

6

@DeeV 的答案意味着您必须自己为 PageAdapter 提供上下文,无论是通过构造函数还是通过 setter。然后将其作为字段存储在 PageAdapter 中,并在需要时检索它。

于 2013-01-10T23:38:34.517 回答
0

私有 ViewGroup _container;

public override Java.Lang.Object InstantiateItem(ViewGroup container, int position)
{
   _container = container;
}

private Context GetContext()
{
   return (Activity)_container.Context;
}
于 2016-04-06T11:58:13.980 回答
0

不建议提供 Context,这可能会导致内存泄漏,如果需要上下文来访问资源,可以通过构造函数提供资源。

MyPagerAdapter(val resources: Resources){

}
....

val adapter = MyPagerAdapter(context.resources)
于 2019-05-06T08:52:56.687 回答