我想从片段类的MySQL数据库中获取配置文件的详细信息。应该显示到textview。像学生的姓名,地址,手机等。我用JSON格式从php发送数据。如何从android片段类中的mysql中获取数据?
这里是我的代码
public class ProfileFragment extends Fragment {
private View parentView;
// Session Manager Class
SessionManager session;
TextView student_name;
ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>();
//URL to get JSON Array
private String url;
//JSON Node Names
private static final String TAG_ARRAY = "student_profile";
private static final String TAG_NAME = "student_name";
JSONArray student_profile = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return inflater.inflate(R.layout.profile, container, false);
parentView = inflater.inflate(R.layout.profile, container, false);
//session.checkLogin();
session = new SessionManager(getActivity());
session.checkLogin();
return parentView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
}
private class JSONParse extends AsyncTask<String, String, JSONObject> {
private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
private JSONObject json;
@Override
protected void onPreExecute() {
super.onPreExecute();
student_name = (TextView)getView().findViewById(R.id.studentname);
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Getting Data ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
// get user data from session
HashMap<String, String> user = session.getUserDetails();
// name
String emailaddr = user.get(SessionManager.KEY_NAME);
url = "http://XXXXXXX.org/api/profile.php?emailid="+emailaddr;
// Getting JSON from URL
json = jParser.getJSONFromUrl(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
pDialog.dismiss();
try {
// Getting JSON Array from URL
student_profile = json.getJSONArray(TAG_ARRAY);
for(int i = 0; i < student_profile.length(); i++){
JSONObject c = student_profile.getJSONObject(i);
String student_firstname = null;
// Storing JSON item in a Variable
String name = c.getString(student_firstname);
Toast.makeText(getActivity(), "name="+name, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
我得到了错误这样
12-24 09:29:44.817: W/System.err(30999): org.json.JSONException: No value for student_profile
9月12日至24日:29:44.818:W/System.err的(30999):在org.json .JSONObject.get(JSONObject.java:355) 9月12日至24日:29:44.819:W/System.err的(30999):在org.json.JSONObject.getJSONArray(JSONObject.java:549) 9月12日至24日:29:44.819:W/System.err的(30999):在com.tutorialsface.ResideMenuDemo.ProfileFragment $ JSONParse.onPostExecute(ProfileFragment.java:89)
在浏览器上检查你的URL。我认为PHP的空车返回JSON – Elango
显示您的JSON内容 –
{ “student_firstname”: “Iyan”, “student_lastname”: “休谟”, “student_photo”: “”, “student_address”: “dfgsdf”, “student_mobile”:“3333333333 ”, “student_father_name”: “”, “student_dob”: “”, “student_mother_mobile”: “”, “student_landphone”: “”, “student_conveyance”: “”, “standard_name”:NULL, “division_name”: “B” } –