檢索上下文我創建了一個類來檢索從一個PHP文件中的JSON編碼的意見。這個類,從的AsyncTask擴展:從片段
public class RecuperarComentarisFoto extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(????);
pDialog.setMessage("Creating Product..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
正如你所看到的,我想表現出ProgressDialog而「doInBackground」 proccess工作。但progressDialog的構造函數,要求一個上下文,我不知道如何提供它。
我打電話從片段這個類,所以我不能訪問的情況下是這樣的:
pDialog = new ProgressDialog(MyFragmentA.context);
「主」胡亞蓉被稱爲:AndroidViewPagerActivity延伸FragmentActivity。
(通過主,我的意思是它是正在創建的標籤,並管理它們之間的導航的一個)
這是它的代碼:
public class AndroidViewPagerActivity extends FragmentActivity {
ViewPager mViewPager;
TabsAdapter mTabsAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewPager = new ViewPager(this);
mViewPager.setId(R.id.pager);
setContentView(mViewPager);
final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_HOME);
bar.hide();
mTabsAdapter = new TabsAdapter(this, mViewPager);
mTabsAdapter.addTab(bar.newTab().setText("Fragment A"), MyFragmentA.class, null);
if (savedInstanceState != null) {
bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
}
}
我怎樣才能訪問上下文?我應該使用哪種上下文? 「AndroidViewPagerActivity」上下文?那麼我怎樣才能從片段中訪問它的上下文呢?
謝謝。
塞爾吉
好的,這解決了這個問題。隨着你的幫助和一些額外的谷歌,我明白了:D。打算放入我的最終代碼,因此every1可以看到實現的答案。 – Reinherd
當對某些設備大規模使用時,在片段內調用getActivity()可能會導致NullPointerException。在片段被附加到活動之前進行調用時會發生這種情況。它也導致內存泄漏,這可能是致命的,很難找到。通過這個來獲得更好的理解。 https://android-developers.googleblog.com/2009/01/avoiding-memory-leaks.html –