私のアンドロイドアプリはサーバーに接続し、データベースから情報を取得し、リストビューを埋めます。 xamppと私のlocalhostで正常に動作します。私のサーバーにファイルをアップロードした後、それは動作しません。ログ以外のエラーはありません。volley not populatingリモートサーバーのリストビュー
D /ボレー:[1] 2.onErrorResponse:ViewGuidesActivity
しかし、私は自分のWebブラウザ上で私の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);
私は変換の過程で、私は時代遅れのチュートリアルに査読ので、私は、いくつかの非推奨メソッドを使用していることを承知している、とイムすべてPHP使用するファイルmysqliしかし、まず私は自分のアプリを動かす必要がありました。私は私のコードで同じURLを使用してい
http://srilankatouristguides.com/guideList.php
:
は、ここに私のJSONデータです。何が問題なの?それは私のローカルホストでうまく動作するので、それを理解できません。どんな助けもありがとう。
dbユーザー名、パスワード、ホストが正しいかどうかを確認してください。 –
1. onResponseメソッドが予期した結果を返すかどうか確認してください。 2)アダプターコードをポストする可能性があります。 – danypata
'Log.d(TAG、response.toString());'行が何を印刷しているのか、まったく印刷されているのかを教えてください。これがサーバーから返されないデータか、リストビューが更新されないかどうかを確認する必要があります。 – ishmaelMakitla