求解,模擬進度條問題。
public?class?ProgressBars?extends?Activity{ private?ProgressBar?bar; private?myAsyncTask?asyncTask; @Override protected?void?onCreate(Bundle?savedInstanceState)?{ //?TODO?Auto-generated?method?stub super.onCreate(savedInstanceState); setContentView(R.layout.progerssbar); bar=(ProgressBar)?findViewById(R.id.pro); asyncTask.execute(); } @Override protected?void?onPause()?{ //?TODO?Auto-generated?method?stub super.onPause(); if(asyncTask!=null&&asyncTask.getStatus()==asyncTask.getStatus().RUNNING){ asyncTask.cancel(true); } } class?myAsyncTask?extends?AsyncTask<Void,?Integer,?Void>{ @Override protected?Void?doInBackground(Void...?arg0)?{ //?TODO?Auto-generated?method?stub for?(int?i?=?0;?i?<?100;?i++)?{ if(isCancelled()){ break; } publishProgress(i); try?{ Thread.sleep(300); }?catch?(InterruptedException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); } } return?null; } @Override protected?void?onProgressUpdate(Integer...?values)?{ //?TODO?Auto-generated?method?stub super.onProgressUpdate(values); if(isCancelled()){ return; } bar.setProgress(values[0]); } } }
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.astest/com.example.astest.ProgressBars}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.AsyncTask com.example.astest.ProgressBars$myAsyncTask.execute(java.lang.Object[])' on a null object reference
主界面activity中設(shè)置了按鈕的點擊事件,也聲明了activity,不知道為什么還會報空指針異常
2016-08-07
在asyncTask.execute();前面加asyncTask=new MyAsyncTask();