0

点击注册进入登录页面。我想在两者之间显示一个进度圈。我已经看到堆栈溢出的例子,用 AsynTasks 解释了这个,对于 ListView 和所有的。我想要一个非常简单的示例来显示它,方法是在加载我的登录屏幕时单击“注册”按钮延迟时间。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/background"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="@dimen/layout_padding" >

    <!-- To remove the focus of edit text for the first time -->

    <LinearLayout
        android:layout_width="0px"
        android:layout_height="0px"
        android:focusable="true"
        android:focusableInTouchMode="true" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="@dimen/title_image_height"
        android:layout_marginTop="@dimen/title_image_margin_top"
        android:contentDescription="@string/title"
        android:src="@drawable/site_image" />

    <EditText
        android:id="@+id/editWorkEmail"
        style="@style/text.edit"
        android:layout_centerInParent="true"
        android:layout_marginBottom="@dimen/margin"
        android:hint="@string/hint_work_email"
        android:inputType="textEmailAddress" />

    <Button
        android:id="@+id/buttonSignUp"
        style="@style/button"
        android:layout_width="match_parent"
        android:layout_below="@id/editWorkEmail"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="@dimen/margin"
        android:text="@string/button_sign_up" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:indeterminateDrawable="@drawable/progress" >

    </ProgressBar>

</RelativeLayout>
4

1 回答 1

1

首先,当您开始活动时,我认为它会立即开始并且不需要太多时间开始不知道您实际上是如何完成工作的。您可以在调用请求时显示进度对话框,并在收到响应后等待响应,只需关闭当前进度,如果响应成功注册过程,则只需开始登录

对于使用 AsynTask 类,您可以这样做

private class SignupTask extends AsyncTask<Void,Void,String>{
     private ProgressDialog pDialog;
     public void onPreExecute(){
         pDialog = ProgressDialog.showDialog(context,"Signup Process","Please wait");
     }
     public String doInBackground(Void... params){
         // here call your web call process and send appropriate message as return
     }
     public void onPostExecute(String result){
         // here get the result do action
         pDialog.dismiss();
     }
}

创建此类的对象并执行new SignupTask().execute();

于 2013-09-20T12:29:29.750 回答