Tôi đã tạo một lớp để truy xuất các nhận xét từ một mã hóa JSON từ một tệp PHP. Lớp này, kéo dài từ AsyncTask:Lấy bối cảnh từ một đoạn
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);
}
}
Như bạn có thể thấy, tôi đang cố gắng hiển thị ProgressDialog trong khi quá trình "doInBackground" đang hoạt động. Nhưng constructor progressDialog, yêu cầu một Context, và tôi không biết cách cung cấp nó.
tôi gọi lớp này từ một Fragment, vì vậy tôi không thể truy cập vào bối cảnh như thế này:
pDialog = new ProgressDialog(MyFragmentA.context);
Các "chính" acitivity được gọi là: AndroidViewPagerActivity kéo dài FragmentActivity.
(. Bởi chính, tôi muốn nói rằng đó là một trong đó là việc tạo ra các tab, và quản lý điều hướng giữa chúng)
này là nó là mã:
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));
}
}
Làm thế nào tôi có thể truy cập vào bối cảnh ? Tôi nên sử dụng ngữ cảnh nào? Ngữ cảnh "AndroidViewPagerActivity"? Vậy làm thế nào tôi có thể truy cập ngữ cảnh của nó từ một đoạn?
Cảm ơn bạn.
Sergi
Ok, điều này đã giải quyết được vấn đề. Với sự giúp đỡ của bạn và một số googleing thêm, tôi đã nhận nó: D. Đi để đặt mã cuối cùng của tôi, vì vậy every1 có thể thấy câu trả lời được thực hiện. – Reinherd
Gọi getActivity() bên trong đoạn có thể dẫn đến NullPointerException khi được sử dụng ở quy mô lớn cho một số thiết bị. Điều này xảy ra khi cuộc gọi được thực hiện trước khi đoạn được gắn vào hoạt động. Nó cũng dẫn đến rò rỉ bộ nhớ có thể gây tử vong và khó tìm. Đi qua điều này để hiểu rõ hơn. https://android-developers.googleblog.com/2009/01/avoiding-memory-leaks.html –