我的代碼原來的線程是在這裏:活動拋出這個錯誤:只有創建視圖層次可以觸摸其觀點
public class Water_schedule extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork() // StrictMode is most commonly used to catch accidental disk or network access on the application's main thread
.penaltyLog().build());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_water_schedule);
area = (Spinner)findViewById(R.id.spinner1);
submit = (Button) findViewById(R.id.btnsch);
tv = (TextView) findViewById(R.id.textSch);
submit.setOnClickListener(new OnClickListener() {
new Access_water().execute();
}
});
}
class Access_water extends AsyncTask<String , string ,string>{
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Water_schedule.this);
pDialog.setMessage("Loading please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected string doInBackground(String... arg0) {
// TODO Auto-generated method stub
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
// define the parameter
postParameters.add(new BasicNameValuePair("area",
area.getSelectedItem().toString()));
String response = null;
// call executeHttpPost method passing necessary parameters
try {
response = CustomHttpClient.executeHttpPost(
"http://pcmc.site11.com/water.php",
postParameters);
// store the result returned by PHP script that runs MySQL query
String result = response.toString();
//parse json datasss
try{
returnString = "";
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag","area: "+json_data.getString("area")+
",timing: "+json_data.getString("timing")+
",event: "+json_data.getString("event")+
",day: "+json_data.getString("day")
);
//Get an output to the screen
returnString += "\nArea : " + json_data.getString("area") +
"\n____________________________\n Time : "+ json_data.getString("timing") +
"\n____________________________\nEvent : "+ json_data.getString("event")+
"\n____________________________\nDay : "+ json_data.getString("day");
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
try{
tv.setText(returnString);
}
catch(Exception e){
Log.e("log_tag","Error in Display!" + e.toString());;
}
}
catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
return null;
}
@Override
protected void onPostExecute(string result) {
super.onPostExecute(result);
pDialog.dismiss();
}
}
}
我試圖同時從數據庫中提取數據使用進度對話框。數據庫代碼也在上面給出。
請讓我知道該怎麼做才能解決這個錯誤。
相同的代碼正在另一個活動上運行,沒有錯誤。
告訴我如何在多個活動中使用此進度對話框。
首先,您需要正確設置代碼格式。這樣寫的時候真的很難閱讀。我也會回答這個問題,查看下面的答案。 – milosmns