2015-10-17 53 views
2

在我的主要活动中,如果我应用此代码,我得到错误gridviewadapter() cannot be applied,这是上下文中的问题。上下文错误,同时将asynctask值传递给mainactivity

GridViewAdapter adapter = new GridViewAdapter(this, R.layout.grid_item_layout, result); 

如果我申请这样的:

public MainActivity (Context context) { 
     mContext = context; 

    } 
     GridViewAdapter adapter = new GridViewAdapter(mContext, R.layout.grid_item_layout, result); 

我在logcat的

java.lang.InstantiationException: can't instantiate class com.justedhak.www.i.MainActivity; no empty constructor 

我想传递的AsyncTask ArrayList的价值mainactivity这个错误..如何解决?

+0

我想你不应该使用'MainActivity'的构造函数。你可以使用:'GridViewAdapter adapter = new GridViewAdapter(getApplicationContext(),R.layout.grid_item_layout,result);' –

+0

@MrNeo我试过你的方式,它可以发挥作用,你可以发布它作为答案接受它 – Moudiz

回答

1

不应使用MainActivity类的构造函数。 请使用:的

GridViewAdapter adapter = new GridViewAdapter(getApplicationContext(), R.layout.grid_item_layout, result); 

代替:

GridViewAdapter adapter = new GridViewAdapter(this, R.layout.grid_item_layout, result); 
2

删除此构造

public MainActivity (Context context) { 
    mContext = context; 
} 

添加此内部MainActivityonCreate()

mContext = this; 
2

GridViewAdapter适配器=新GridViewAdapter(此,R.layout.grid_item_layout,列表项);

3

尝试

GridViewAdapter adapter = new GridViewAdapter(MainActivity.this, R.layout.grid_item_layout, result); 
2

如果你想传递mContext变量,初始化这个变量如下所示:

public class MainActivity extends AppCompatActivity { 
    private final Context mContext = this; 

    ... // other codes such as onCreate... 
} 

希望这有助于!

+0

嗨!回答,上面接受的答案做了这项工作。现在我正在设计工具栏的样式,你有没有给你答案?关于工具栏? – Moudiz

+0

我仍然没有发布这个问题,我仍然阅读有关它,一旦我问这个问题生病告诉你btw什么时候在你的国家? – Moudiz

+0

14:54星期天现在 – BNK