在Android应用程序小部件中添加进度对话框时出现错误令牌异常

时间:2013-07-20 20:23:49

标签: android-asynctask progressdialog android-appwidget

我想在加载数据时显示旋转刷新但是获得此异常。我正在使用异步任务进行处理。请指导如何正确添加进度对话框以提供旋转效果。我们将不胜感激。

我的小部件提供程序class-onUpdate()方法

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {

//---
        mProgressDialog = new ProgressDialog(context);
        mProgressDialog.setIndeterminate(false);
        mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        try {
            fetchTask.execute().get();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ExecutionException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    mContext = context;
}

protected void onPreExecute(){
            mProgressDialog.show();
            //updateViews.setViewVisibility(R.id.refresh, View.GONE);
            //updateViews.setViewVisibility(R.id.progress, View.VISIBLE);
        }

    protected Store doInBackground(URL... arg0) {
//my stuff
}

protected void onPostExecute(Store storeObj) {

            mProgressDialog.dismiss();
            //updateViews.setViewVisibility(R.id.progress, View.GONE);
            //updateViews.setViewVisibility(R.id.refresh, View.VISIBLE);


            pushWidgetUpdate(mContext,updateViews);
        }

我的xml

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent">

    <ImageButton
        android:id="@+id/refresh"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="20dp"
        android:background="#0079C1"
        android:src="@drawable/navigation_refresh"
        android:visibility="visible" />

    <ProgressBar
        android:id="@+id/progress"
        android:indeterminate="true"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:visibility="gone" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

纠正错误。我有不正确的宽度,按钮和进度条的高度,更正了。另外,做了foll。更改代码..这是正确的。在onUpdate中无需做任何事。

protected void onPreExecute(){

            updateViews.setViewVisibility(R.id.refresh, View.GONE);
            updateViews.setViewVisibility(R.id.progress, View.VISIBLE);
            pushWidgetUpdate(mContext,updateViews);
        }

protected void onPostExecute(Store storeObj) {

            //my stuff

            updateViews.setViewVisibility(R.id.progress, View.GONE);
            updateViews.setViewVisibility(R.id.refresh, View.VISIBLE);          

            pushWidgetUpdate(mContext,updateViews);
        }



//My Layout file
  <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <ImageButton
            android:id="@+id/refresh"
            android:layout_width="70dp"
            android:layout_height="80dp"             
            android:layout_marginLeft="25dp"
            android:layout_marginRight="20dp"
            android:background="#0079C1"
            android:src="@drawable/navigation_refresh"
            android:visibility="visible" />

        <ProgressBar
            android:id="@+id/progress"
            android:indeterminate="true"
            style="?android:attr/progressBarStyle"
            android:layout_width="70dp"
            android:layout_height="80dp"
            android:layout_margin="10dp"
            android:indeterminateBehavior="cycle"
            android:visibility="gone" />
    </RelativeLayout>