Я хочу получить данные профиля из mysql db из класса фрагмента. должен отображаться в текстовом виде. как имя студента, адрес, мобильный и т. д. Я использовал формат JSON для отправки данных с php.Как получить данные из 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
12-24 09: 29: 44.818: W/System.err (30999): в org.json .JSONObject.get (JSONObject.java:355) 12-24 09: 29: 44.819: W/System.err (30999): at org.json.JSONObject.getJSONArray (JSONObject.java:549) 12-24 09 : 29: 44.819: W/System.err (30999): at com.tutorialsface.ResideMenuDemo.ProfileFragment $ JSONParse.onPostExecute (ProfileFragment.java:89)
проверить ur url на браузере. Я думаю, php return empty json – Elango
показать ваше содержимое json –
{"student_firstname": "Iyan", "student_lastname": "Hume", "student_photo": "", "student_address": "dfgsdf", "student_mobile": "3333333333 », "student_father_name": "", "student_dob": "", "student_mother_mobile": "", "student_landphone": "", "student_conveyance": "", "standard_name": нулевой, "division_name": "B" } –