讀取數據,我需要以檢索從MySQL數據庫Viewlist產品的inforamtion這是在我的 應用程序做得正確,但如果我點擊列表中的項目,以顯示它 的inforamtion它是在出現這個問題的問題我logcat的從數據庫
09-21 01:39:58.915: E/AndroidRuntime(6968): FATAL EXCEPTION: main
09-21 01:39:58.915: E/AndroidRuntime(6968): java.lang.NullPointerException
09-21 01:39:58.915: E/AndroidRuntime(6968): at com.ksu.sms.ViewCourseStudent$GetCourseDetails.onPostExecute(ViewCourseStudent.java:142)
09-21 01:39:58.915: E/AndroidRuntime(6968): at com.ksu.sms.ViewCourseStudent$GetCourseDetails.onPostExecute(ViewCourseStudent.java:1)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.os.AsyncTask.finish(AsyncTask.java:602)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.os.AsyncTask.access$600(AsyncTask.java:156)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.os.Handler.dispatchMessage(Handler.java:99)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.os.Looper.loop(Looper.java:137)
09-21 01:39:58.915: E/AndroidRuntime(6968): at android.app.ActivityThread.main(ActivityThread.java:4340)
09-21 01:39:58.915: E/AndroidRuntime(6968): at java.lang.reflect.Method.invokeNative(Native Method)
09-21 01:39:58.915: E/AndroidRuntime(6968): at java.lang.reflect.Method.invoke(Method.java:511)
09-21 01:39:58.915: E/AndroidRuntime(6968): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-21 01:39:58.915: E/AndroidRuntime(6968): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-21 01:39:58.915: E/AndroidRuntime(6968): at dalvik.system.NativeStart.main(Native Method)
類viewcoursestudent.java
package com.ksu.sms;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class ViewCourseStudent extends Activity {
TextView Name; TextView Description;
TextView OfficeHours;
TextView CreditHours;
TextView MaxAbsenceDays;
TextView ExamsDates ;
String CourseID ;
// Progress Dialog
private ProgressDialog pDialog;
// JSON parser class
JSONParser jsonParser = new JSONParser();
// single course url
private static final String url_course_detials = "http://10.0.2.2/SmsPhp/view_course.php";
//JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_CourseID = "CourseID";
private static final String TAG_course = "course";
private static final String TAG_Name = "Name";
private static final String TAG_OfficeHours = "OfficeHours";
private static final String TAG_CreditHours = "CreditHours";
private static final String TAG_Description = "Description";
private static final String TAG_MaxAbsenceDays = "MaxAbsenceDays";
private static final String TAG_ExamsDates = "ExamsDates";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_course);
Intent i = getIntent();
CourseID = i.getStringExtra(TAG_CourseID);
// Getting complete course details in background thread
new GetCourseDetails().execute();
}
/**
* Background Async Task to Get complete course details
* */
class GetCourseDetails extends AsyncTask<String, String, String> {
private JSONObject course;
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ViewCourseStudent.this);
pDialog.setMessage("Loading course details. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
// updating UI from Background Thread
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("CourseID", CourseID));
// getting course details by making HTTP request
// Note that product details url will use GET request
JSONObject json = jsonParser.makeHttpRequest(
url_course_detials, "GET", params);
// check your log for json response
Log.d("Single course Details", json.toString());
// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// successfully received product details
JSONArray courseObj = json
.getJSONArray(TAG_course); // JSON Array
// get first course object from JSON Array
course = courseObj.getJSONObject(0);
}else{
// course with course id not found
course = null;
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once got all details
pDialog.dismiss();
if(course != null){
try
{
Name = (TextView) findViewById(R.id.C_Name);
Description = (TextView) findViewById(R.id.C_Des);
CreditHours = (TextView) findViewById(R.id.C_Hours);
OfficeHours=(TextView) findViewById(R.id.C_Ohour);
MaxAbsenceDays=(TextView) findViewById(R.id.C_absence);
ExamsDates=(TextView) findViewById(R.id.Add_C_Exam);
// display product data in EditText
Name.setText(course.getString(TAG_Name));
Description.setText(course.getString(TAG_Description));
OfficeHours.setText(course.getString(TAG_OfficeHours));
MaxAbsenceDays.setText(course.getString(TAG_MaxAbsenceDays));
ExamsDates.setText(course.getString(TAG_ExamsDates));
CreditHours.setText(course.getString(TAG_CreditHours));
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}
如果u需要的任何東西explaine我可以做 感謝這麼多
什麼是行渣華:142? – kosa
歡迎來到堆棧溢出。我們歡迎來自新用戶的問題,但這不是一個只需轉儲日誌和代碼並說「當我解決問題時讓我知道」的地方。解釋你正在做什麼,在哪裏發生特定的錯誤,以及你已經做了什麼來解決它。 –
一個名爲GetCourseDetails的類是很不錯的選擇。 – SJuan76