基本上,我使用可滚动的标签和滑动构建了Eclipse和Android开发工具提供的默认新Activity UI。
基于Fragment
。
我试图在片段内部扩展视图,在此视图中附加按钮单击侦听器,这将启动AsyncTask,然后在其onPostExecute
方法中显示进度对话框。
以下是一些代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.my_view, container, false);
Button bProcess= (Button) rootView.findViewById(R.id.bJustParked);
bProcess.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new JustParkedGetLocation().execute();
}
});
// Modify views in fragment below
return rootView;
}
显然,JustParkedGetLocation
扩展了AsyncTask,并且是包含上述onCreateView
方法的类的子类。但是,如果我想在JustParkedGetLocation->onPreExecute()
中创建一个对话框,例如:
@Override
protected void onPreExecute() {
ProgressDialog progress = new ProgressDialog(this);
progress.setIndeterminate(true);
progress.setTitle("Getting location");
progress.show();
super.onPreExecute();
}
... ProgressDialog
构造函数的参数不正确,因为默认情况下,保存onCreateView
方法的类是静态的(扩展Fragment
的类)。导致以下错误:
The constructor ProgressDialog(MainActivity.ExtendedFragment.JustParkedGetLocation) is undefined
答案 0 :(得分:1)
您需要向构造函数传递对活动上下文的引用:
ProgressDialog progress = new ProgressDialog(getActivity());