Meine Android-App verbindet sich mit einem Server und erhalten Informationen aus einer Datenbank und füllt eine Listview. es funktioniert gut mit xampp auf meinem localhost. aber nach dem Hochladen meiner Dateien auf meinen Server funktioniert es nicht. kein Fehler im Protokoll außer.Volley nicht füllen ListView mit Remote-Server
D/Volley: [1] 2.onErrorResponse: ViewGuidesActivity
Aber wenn ich meine PHP Datei auf meiner Web-Browser Daten perfekt es gibt die JSON laufen.
public class ViewGuidesActivity extends AppCompatActivity {
private static final String TAG = ViewGuidesActivity.class.getSimpleName();
private ProgressDialog pDialog;
private List<Guide> guideList = new ArrayList<Guide>();
private ListView listView;
private CustomListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_guides);
listView = (ListView) findViewById(R.id.list);
adapter = new CustomListAdapter(this, guideList);
listView.setAdapter(adapter);
pDialog = new ProgressDialog(this);
// Showing progress dialog before making http request
pDialog.setMessage("Loading...");
pDialog.show();
// Creating volley request obj
JsonArrayRequest movieReq = new JsonArrayRequest(AppConfig.URL_GET_GUIDE_LIST,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
hidePDialog();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Guide guide = new Guide();
guide.setNgno(obj.getString("ngno"));
guide.setEmail(obj.getString("email"));
guide.setName(obj.getString("name"));
// adding movie to movies array
guideList.add(guide);
} catch (JSONException e) {
e.printStackTrace();
}
}
// notifying list adapter about data changes
// so that it renders the list view with updated data
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
hidePDialog();
}
});
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Adding request to request queue
AppController.getInstance().addToRequestQueue(movieReq);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
Guide newGuide = guideList.get(position);
String email = newGuide.getEmail();
String ngno = newGuide.getNgno();
//System.out.println(email);
Intent i = new Intent(getApplicationContext(), GuideDetails.class);
i.putExtra("email", email);
i.putExtra("ngno", ngno);
startActivity(i);
}
});
}
Meine PHP-Datei:
$con=mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "select * from guide";
$result = mysql_query($sql);
$json = array();
if(mysql_num_rows($result)){
while($row=mysql_fetch_assoc($result)){
$json[]=$row;
}
}
mysql_close($con);
echo json_encode($json);
Ich bin mir bewusst, dass ich ein paar veralteten Methoden bin mit, weil ich zu einem veralteten Tutorial referierte und im im Prozess aller Umwandlung des PHP zu verwendende Dateien mysqli. Aber zuerst musste ich meine App zum Laufen bringen.
Hier ist meine JSON Daten:
http://srilankatouristguides.com/guideList.php
ich die gleiche URL in meinem Code. Was könnte das Problem sein? kann es nicht herausfinden, da es gut funktioniert mit meinem localhost. jede Hilfe würde geschätzt werden.
Überprüfen Sie, ob der db-Benutzername, das Kennwort und der Host korrekt sind oder nicht –
1.Überprüfen Sie, ob die onResponse-Methode das erwartete Ergebnis zurückgibt. 2) Vielleicht post adapter code. – danypata
Bitte zeigen Sie uns, was die Zeile 'Log.d (TAG, response.toString());' druckt - oder dass sie überhaupt gedruckt wird. Wir müssen bestätigen, ob dies die Frage ist, ob Daten nicht vom Server zurückgegeben werden oder ob die Listenansicht nicht aktualisiert wird. – ishmaelMakitla