2015-10-17 61 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