我有一个主活动,它使用以下代码扩展SampleActivityBase
public class MainActivity extends SampleActivityBase {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
}
}
我有另一类
public class SlidingTabsBasicFragment extends Fragment {
在这一类中,我有另一个子类
class SamplePagerAdapter extends PagerAdapter {
在覆盖所有必要的功能后,我还有一个功能
public String getJSON(String url) {
class GetJSON extends AsyncTask<String, Void, String> {
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(SlidingTabsBasicFragment.this.getContext(), "Please Wait...", "Checking", true, true);
}
@Override
protected String doInBackground(String... params) {
Log.d("doInBackground : ", "Function Started");
String uri = params[0];
BufferedReader bufferedReader = null;
try {
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "n");
}
jsonString = sb.toString().trim();
return sb.toString().trim();
} catch (Exception e) {
return new String("Exception: " + e.getMessage());
}
}
@Override
protected void onPostExecute(String s) {
if(loading.isShowing()) {
loading.dismiss();
}
super.onPostExecute(s);
jsonString = s;
}
}
GetJSON gj = new GetJSON();
gj.execute(url);
return jsonString;
}
当我在SamplePagerAdapter类中调用这个函数时,除了Progress Dialog之外,其他一切都很好。它没有显示。。。
请告诉我我做错了什么,以及如何显示进度对话框。选项卡显示来自在线数据库的数据,我想在数据堆积时启动进度对话框。
保持适配器类独立的try.get()安装在.execute 中