0

我只想在新活动开始之前显示进度条。当我从上一个活动开始活动时,新屏幕首先显示虚拟进度条(只有进度条的白屏),然后在 2 或 3 秒后启动新活动。

listCategory.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        Intent iMenuList = new Intent(thirdstep.this,  fifthscreen.class);
        startActivity(iMenuList);
    }
});

public class fifthscreen extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fifthscreen);
    }
}
4

4 回答 4

1

您可以使用以下处理程序进行尝试:

listCategory.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1,
        int position, long arg3) {
//Display your progressBar here
Handler mHand  = new Handler();
    mHand.postDelayed(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            Intent iMenuList = new Intent(thirdstep.this,  fifthscreen.class);
            //Dismiss progressBar here
            startActivity(iMenuList);
        }
    }, 2000);   
    }
}
});

您需要将此代码放入onItemClick方法中。

于 2013-09-17T12:15:15.017 回答
0
 private class log_in extends AsyncTask<String,Void,String>{
        ProgressDialog pDialog;
        int a=0;
       boolean value1;
        @Override
         protected void onPreExecute(){
            pDialog = new ProgressDialog(LoginActivity.this);
            pDialog.setMessage("Authenticating user...");
            pDialog.show();
         }
        @Override
        protected Boolean doInBackground(String... params) {
           if(a>300)
           {value1=true;}
           else{a++;
             value1=false;}
            return value1;
        }
        protected void onPostExecute(Boolean params){
            super.onPostExecute(params);
            pDialog.dismiss();
            if(params){
                Intent intent=new Intent(LoginActivity.this,menu.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                LoginActivity.this.startActivity(intent);
            }
           else{
               error.setText("Wrong password or username combination");
            }

        }

     }

只需调用new log_in().execute();您想调用下一个活动的位置

于 2013-09-17T12:22:15.290 回答
0

好的,如果您的问题是活动需要很长时间才能显示,那么您可能希望在活动显示后膨胀 xml。

以下是步骤:

  1. 加载一个简单的 Activity 并将其显示在屏幕上
  2. 显示进度条
  3. 为 Activity 中包含您需要的所有组件的 Layout 充气
  4. 管理其他初始化
  5. 隐藏进度条
于 2013-09-17T12:09:54.130 回答
0

您可以将具有宽度和高度的 imageView 放置为 fill_parent 并经常更改其背景图像,这会产生进度条递增的错觉。

使用另一个布局膨胀您的布局,该布局具有宽度和高度为 fill_parent 的 imageView 以及显示初始值的 progressBar 的背景图像。然后使用处理程序..

new Handler().postDelayed(new Runnable() {

        @Override
        public void run() 
        {
            imageView.setBackgroundResource(R.drawable.progressImage2);

        }
    }, 3200);


new Handler().postDelayed(new Runnable() {

    @Override
    public void run() 
    {

        Intent intent=new Intent(getApplicationContext(),SecondActivity.class);
        finish();
        startActivity(intent);
    }
}, 5000);
于 2013-09-17T12:13:31.147 回答