在android中传递上下文

Posted

技术标签:

【中文标题】在android中传递上下文【英文标题】:Passing context in android 【发布时间】:2014-05-25 05:20:58 【问题描述】:

这方面的新手想要一些关于知道如何在给定示例中传递类的上下文的建议。

在 AA 类中有类似下面的内容,其中 listtext 是一个 listtype 哈希图。

 List<HashMap<String, String>> listText = atext.get();

 SimpleAdapter adapter = new SimpleAdapter(Context,listText,android.R.layout.simple_list_item_1, from, to);

问题是,Context 应该是您希望在给定场景中显示结果的地方。

那个类是 A1,有一个 Edittext 小部件。

所以这里的问题是如何获取 A1 类的上下文? 在 A1 类的 Edittext 小部件中获取结果。

可能是菜鸟问题,所以请温柔。

感谢回复

【问题讨论】:

我不明白你,但A1.this 为你返回上下文。AAActivity 类? 不!它只是一个简单的类 这样你就可以将上下文传递给AA类的构造函数 Activity类是哪一个。 A1 是活动类。而 AA 是一个简单的类。 【参考方案1】:

改变-

 List<HashMap<String, String>> listText = atext.get();

 SimpleAdapter adapter = new SimpleAdapter(Context,listText,android.R.layout.simple_list_item_1, from, to);

 List<HashMap<String, String>> listText = atext.get();

 SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),listText,android.R.layout.simple_list_item_1, from, to);

【讨论】:

【参考方案2】:

创建AA类的构造函数,在A1中初始化AA时,传递A1的上下文。在课堂AA

private Context context;
public AA(Context a1)
    this.context = a1;

在课堂A1:

AA aa = new AA(getContext());

然后就可以使用了

SimpleAdapter adapter = new SimpleAdapter(context,listText,android.R.layout.simple_list_item_1, from, to);

【讨论】:

我确定你在构造函数中 A1 的意思是 Context (Context a1) @shayan pourvatan 是的。实际上,如果 A1Activity,那么它也是 Context 那么应该用什么来代替“上下文”??在 Simpleadapter 的语法中的意思。 如果您将 A1 更改为 Context 会更好,因为也许 OP 希望将此类与另一个上下文一起使用。 @JaneWi.S 然后您可以使用Context 的上下文,使用(小写c

以上是关于在android中传递上下文的主要内容,如果未能解决你的问题,请参考以下文章

Android - 为啥人们反复引用静态上下文内联,而不是在 Method() 中传递一次?

Android - 为什么人们反复引用内联静态上下文,而不是在Method()中传递一次?

Android MVP Architecture and Realm - 如何避免在 MVP 层之间传递上下文?

Android--Intent组件带参传递与返回

Android - MVP 的上下文

需要上下文的 Android 单元测试