从片段中检索上下文
问题内容:
我创建了一个类,以从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
。