从片段中检索上下文


问题内容

我创建了一个类,以从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);
    }

}

如您所见,我正在尝试在“
doInBackground”过程运行时显示一个ProgressDialog。但是progressDialog构造函数要求一个Context,但我不知道如何提供它。

我从Fragment调用此类,所以无法访问这样的上下文:

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”上下文?那么如何从片段访问其上下文呢?

谢谢。

塞尔吉


问题答案:

getActivity()在内部使用可以传递Fragment一个Context。可以正常运作,因为Activity继承自Context

或者,您可以使用getApplicationContext()获取Context