关于Activity.getApplicationContext()

时间:2011-10-24 13:38:11

标签: android

我为列表视图创建了一个自定义适配器。在适配器的构造函数中,我执行以下操作:

public CustomListAdapter(Context context, int textViewResourceId,
        ArrayList<CatalogueItemListData> items,int width) {
    super(context, textViewResourceId, items);
    this.context =context;
            mInflater = LayoutInflater.from(context);
      }

在我的活动课程中,我称之为adaper如下:

this.m_adapter = new CustomListAdapter(this,
                    android.R.layout.simple_list_item_1, m_orders,displayMetrics.widthPixels);
            listView.setAdapter(this.m_adapter);

我得到如下图所示的输出: Output when context is passed to the constructor

现在当我更改我的适配器的构造函数时,如下所示:

 public CustomListAdapter(Activity activity, int textViewResourceId,
        ArrayList<CatalogueItemListData> items,int width) {
    super(activity.getApplicationContext(), textViewResourceId, items);
    this.context =activity.getApplicationContext();
            mInflater = LayoutInflater.from(context);
      }

我得到以下输出:

Output when using activity.getApplicationContext()

有人可以告诉我产出差异的可能原因是什么?提前谢谢。

2 个答案:

答案 0 :(得分:0)

我想说你已经为你的特定活动应用了不同的主题,然后是整个应用程序。这可能会导致基于使用的上下文的样式差异。我不确定这是发生了什么,但它是有道理的。

答案 1 :(得分:0)

您的应用程序上下文将使用先前定义的主题(或默认主题),除非您明确地调用它,否则您的活动上下文将不会。

希望这有帮助!