2

これが私の活動oncreate()方法です。okダイアログウィンドウ付きのポジティブボタンを設定しました。それをクリックすると、UIアクティビティに移動しますstaticDisplay.classokダイアログウィンドウをクリックした後、次のアクティビティが読み込まれるまでプログレスバーを設定したいと思います。

public void onCreate(Bundle savedInstanceState) {
    Log.d(TAG, "ACTIVITY ONCREATE");
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.dialog);
    setContentView(R.layout.main);

    if (Registration.isRunning == false) {

        TextView title = new TextView(this);
        title.setText("DM2");
        title.setBackgroundColor(Color.DKGRAY);
        title.setPadding(10, 10, 10, 10);
        title.setGravity(Gravity.CENTER);
        title.setTextColor(Color.WHITE);
        title.setTextSize(20);
        /* alert message */
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCustomTitle(title);

        builder.setMessage(R.string.app_description).setPositiveButton(
                "Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        if (Registration.isRunning == false) {

                            startService(new Intent(
                                    getApplicationContext(),
                                    Registration.class));
                        }
                        staticInfo();
                        if (Registration.ruid == null)
                            Registration.ruid = uId;

                        startActivity(new Intent(getApplicationContext(),
                                StatisticDisplay.class));
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
    } else {
        startActivity(new Intent(getApplicationContext(),
                StatisticDisplay.class));
    }
}

createメソッドのStaticDisplay.class

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.statdisplay);


    usage_btn = (Button) findViewById(R.id.appstat);
    usage_btn.setOnClickListener(this);
    setting_btn = (Button) findViewById(R.id.setting);
    setting_btn.setOnClickListener(this);
}
4

3 に答える 3

2

次のように、バックグラウンドプロセスを実行し、progressdialogを表示するためにAysncTaskを使用できます。

クラスを呼び出す

        new Task().execute(CurrentActivity.this);  

タスククラス:

        private class Task extends AsyncTask<Void, Void, Void> 
             { 
                 ProgressDialog dialog;
                 Context context;
                public Task(Context context)
                { 
                  this.context=context;
                   //constructor for this class
                }
               protected void onPreExecute() {            
                 //create the progress dialog as 
                   dialog=new ProgressDialog(context);
              } 
             protected Void doInBackground(Void... JSONArray) { 

           //Place your background process code     

            }

            protected void onPostExecute(Void unused) {
                 //dismiss the progressdialog 
                dialog.dismiss();
           } 
       }
于 2012-04-04T04:32:16.543 に答える
2

このコード、私のために働いています

private ProgressDialog progress;
Button CallButton;

@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
     progress = new ProgressDialog(Page.this);
     CallButton=(Button)findViewById(R.id.button1);

      CallButton.setOnClickListener(this);

   }

@Override
    public void onClick(View v)
    {
        switch (v.getId()) {
        case R.id.button1:
             progress.setMessage("Please Wait Loading...");
       progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
       progress.setIndeterminate(true);
    progress.show();
     new Thread() 
     {

         public void run() 
         {

             Intent i = new Intent(Page.this,Update.class);
             startActivity(i);
             progress.dismiss();
         }

     }.start();


            break;
}
}
于 2015-04-07T11:14:58.830 に答える
0

次のコードスニペットをご覧ください。

progDailog = ProgressDialog.show(loginAct,"Process ", "please wait....",true,true);

new Thread ( new Runnable()
{
     public void run()
     {
      // your loading code goes here
     }
}).start();

 Handler progressHandler = new Handler() 
 {

     public void handleMessage(Message msg1) 
     {

         progDailog.dismiss();
         }
 }

run()メソッドでは、ロードコードを配置できます。

于 2012-04-04T04:16:27.817 に答える