1
我的android應用程序連接到服務器,並從數據庫中獲取信息並填充列表視圖。它工作正常xampp在我的本地主機。但將我的文件上傳到我的服務器後,它不起作用。在日誌中沒有錯誤除外。凌空不填充ListView與遠程服務器
d /亂射:[1] 2.onErrorResponse:ViewGuidesActivity
但是,當我在我的網頁瀏覽器上運行我的PHP文件時,它返回JSON數據完美。
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);
}
});
}
我的PHP文件:
$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);
我知道,我使用一些過時的方法,因爲我審閱一個過時的教程,和IM在轉換的過程中所有的PHP要使用的文件mysqli。但首先我需要讓我的應用程序工作。
這裏是我的JSON數據:
http://srilankatouristguides.com/guideList.php
我用我的代碼相同的URL。可能是什麼問題?不能弄明白,因爲它可以很好地與我的本地主機。任何幫助,將不勝感激。
檢查數據庫用戶名,密碼和主機是否正確 –
1.檢查onResponse方法是否返回預期結果。 2)也許發佈適配器代碼。 – danypata
請向我們展示Log.d(TAG,response.toString());'是否正在打印 - 或者打印完成。我們需要確認這是否是從服務器返回的數據或列表視圖未更新的問題。 – ishmaelMakitla