4

我的 MainActivity 扩展了活动,我getContext()在另一个传入了 MainActivity 实例的类中使用它在那里工作正常,我的代码:

convertView = LayoutInflater.from(parent.getContext())
                            .inflate(R.layout.nowview, parent, false);

类构造函数:

public PictureCard(String url, String title, int index,
                                             int pos, MainActivity parent)
{
    this.parent = parent;
    // ...
}

我如何称呼班级

Card newCard = new PictureCard(links.get(index) , titles.get(index),
                                                  index, position, parent);

(父母是从 MainActivity 类传入的)

4

3 回答 3

4

您是否尝试过使用getApplicationContext()而不是getContext()

这些链接可能会有所帮助:

http://developer.android.com/reference/android/app/Activity.html

getApplication() 与 getApplicationContext()

getContext() 、 getApplicationContext() 、 getBaseContext() 和“this”之间的区别

于 2013-05-18T05:49:50.357 回答
0

而不是传递 MainActivity 你可以像这样传递上下文作为参数

public PictureCard(String url, String title, int index, int pos, Context parent)

并打电话给

Card newCard = new PictureCard(links.get(index) , titles.get(index), index, position, MainActivity.this);
于 2013-05-18T05:53:39.383 回答
0

如果MainActivtyextends Activty,则只需parent用作上下文:

convertView = LayoutInflater.from(parent)
                        .inflate(R.layout.nowview, parent, false);

另外,我怀疑您在这里传递了错误的实例:

Card newCard = new PictureCard(links.get(index) , titles.get(index),
                                              index, position, parent);
                                                               ^^^^^^

它应该是this,或者MainActivty.this如果它在内部类中。

于 2013-05-18T05:53:40.463 回答