0

基本上,我在 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;
        }

显然,扩展了 AsyncTask 并且是包含上述方法JustParkedGetLocation的类的子类。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
4

1 回答 1

1

您需要向构造函数传递对活动上下文的引用:

ProgressDialog progress = new ProgressDialog(getActivity());
于 2013-05-26T17:49:14.243 回答