2011-03-09 95 views
0
package com.em.progressb; 

public class progressb extends Activity implements OnClickListener { 
    ProgressDialog dialog; 
    int increment; 

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

     Button startbtn = (Button) findViewById(R.id.startbtn); 
     startbtn.setOnClickListener(this); 
    } 

    public void onClick(View view) { 

     // get the increment value from the text box 
     EditText et = (EditText) findViewById(R.id.increment); 
     // convert the text value to a integer 
     increment = Integer.parseInt(et.getText().toString()); 

     dialog = new ProgressDialog(this); 
     dialog.setCancelable(true); 
     dialog.setMessage("Loading..."); 
     // set the progress to be horizontal 
     dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     // reset the bar to the default value of 0 
     dialog.setProgress(0); 

     // get the maximum value 
     EditText max = (EditText) findViewById(R.id.maximum); 
     // convert the text value to a integer 
     int maximum = Integer.parseInt(max.getText().toString()); 
     // set the maximum value 
     dialog.setMax(maximum); 
     // display the progressbar 
     dialog.show(); 

     // create a thread for updating the progress bar 
     Thread background = new Thread (new Runnable() { 
      public void run() { 
       try { 
        // enter the code to be run while displaying the progressbar. 
        // 
        // This example is just going to increment the progress bar: 
        // So keep running until the progress value reaches maximum value 
        while (dialog.getProgress()<= dialog.getMax()) { 
         // wait 500ms between each update 
         Thread.sleep(500); 

         // active the update handler 
         progressHandler.sendMessage(progressHandler.obtainMessage()); 
        } 
       } catch (java.lang.InterruptedException e) { 
        // if something fails do something smart 

       } 
      } 
     }); 

     // start the background thread 
     background.start(); 

     progressb o1 = new progressb(); 
     o1.onPause(); 


if(dialog.getProgress()==dialog.getMax()) 
{  
     Intent i = new Intent(this, ShowMyDialog.class); 
     this.startActivity(i); 
} 


    } 

    // handler for the background updating 
    Handler progressHandler = new Handler() { 
     public void handleMessage(Message msg) { 
      dialog.incrementProgressBy(increment); 
     } 
    }; 
} 

这是我第一次activity.it的代码包含进度条,如进度达到最大极限,我想打电话给第二个活动,我也有写意图调用一个活动。 但它不工作。请帮我解决这个问题..Not_Able到呼叫下一个活动

回答

0

移动你的代码,调用处理程序的下一个活动。你创建的bg线程运行并行到UI线程。

+0

请告诉这是怎么回事? – OnkarDhane 2011-03-09 05:47:14

+0

正是我在答案中所说的。 *将您的代码调用处理程序的下一个活动* – Reno 2011-03-09 05:52:19

+0

我已将调用活动代码移到处理程序,但它给出了此错误=构造函数Intent(new Handler(){},Class )未定义 – OnkarDhane 2011-03-09 06:06:11