اذهب إلى المحتوى

Ali Atwa2

الأعضاء
  • المساهمات

    3
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة Ali Atwa2

  1. السلام عليكم
    انا لدي بعض الافكار لمشاريع ريادية منها ماهو تقني و منها ما هو لوجستي...لكني غير قادر على تحديد اي فكرة يجب ان ابدا بها. هل اختار بناءا على التكلفة او الحجم او مقدار الوقت اللازم لتنفيذ و نجاح الفكرة او ماذا؟؟؟

  2. أنا مبتدئ في تعلّم أندرويد كنت أتابع هذا الدرس حيث استخدم كود json من غير عنوان
    كود json:

    [
        {
            "title": "Dawn of the Planet of the Apes",
            "image": "http://api.androidhive.info/json/movies/1.jpg",
            "rating": 8.3,
            "releaseYear": 2014,
            "genre": ["Action", "Drama", "Sci-Fi"]
        },
        ....
        ....
    ]

    كود الجافا الأساسي الذي تُستدعى المصفوفة منه:

    package info.androidhive.customlistviewvolley;
     
    import info.androidhive.customlistviewvolley.adater.CustomListAdapter;
    import info.androidhive.customlistviewvolley.app.AppController;
    import info.androidhive.customlistviewvolley.model.Movie;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.graphics.Color;
    import android.graphics.drawable.ColorDrawable;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.widget.ListView;
     
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.VolleyLog;
    import com.android.volley.toolbox.JsonArrayRequest;
     
    public class MainActivity extends Activity {
        // Log tag
        private static final String TAG = MainActivity.class.getSimpleName();
     
        // Movies json url
        private static final String url = "http://api.androidhive.info/json/movies.json";
        private ProgressDialog pDialog;
        private List<Movie> movieList = new ArrayList<Movie>();
        private ListView listView;
        private CustomListAdapter adapter;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            listView = (ListView) findViewById(R.id.list);
            adapter = new CustomListAdapter(this, movieList);
            listView.setAdapter(adapter);
     
            pDialog = new ProgressDialog(this);
            // Showing progress dialog before making http request
            pDialog.setMessage("Loading...");
            pDialog.show();
     
            // changing action bar color
            getActionBar().setBackgroundDrawable(
                    new ColorDrawable(Color.parseColor("#1b1b1b")));
     
            // Creating volley request obj
            JsonArrayRequest movieReq = new JsonArrayRequest(url,
                    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);
                                    Movie movie = new Movie();
                                    movie.setTitle(obj.getString("title"));
                                    movie.setThumbnailUrl(obj.getString("image"));
                                    movie.setRating(((Number) obj.get("rating"))
                                            .doubleValue());
                                    movie.setYear(obj.getInt("releaseYear"));
     
                                    // Genre is json array
                                    JSONArray genreArry = obj.getJSONArray("genre");
                                    ArrayList<String> genre = new ArrayList<String>();
                                    for (int j = 0; j < genreArry.length(); j++) {
                                        genre.add((String) genreArry.get(j));
                                    }
                                    movie.setGenre(genre);
     
                                    // adding movie to movies array
                                    movieList.add(movie);
     
                                } 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();
     
                        }
                    });
     
            // Adding request to request queue
            AppController.getInstance().addToRequestQueue(movieReq);
        }
     
        @Override
        public void onDestroy() {
            super.onDestroy();
            hidePDialog();
        }
     
        private void hidePDialog() {
            if (pDialog != null) {
                pDialog.dismiss();
                pDialog = null;
            }
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
     
    }

    سؤالي: لو عندي كود json مشابهة لما سبق بعنوان "worldpopulation" ما الذي يُفترض بي تغييره في كود الجافا كي يتوافق مع كود json؟

    { 
    "worldpopulation": 
    	[
    		 {
    		 "rank":1,"country":"China",
    		 "population":"1,354,040,000",
    		 "flag":"http://www.androidbegin.com/tutorial/flag/china.png"
    		 }
    ]

    حاولت أعدّل في الكود لكن بدون نتيجة

     try {
                                    jsonarray = new JSONArray("worldpopulation");
                                    for (int i = 0; i < jsonarray.length(); i++) {
                                        JSONObject jsonobject = jsonarray.getJSONObject(i);
                                        Movie movie = new Movie();
                                        String name = jsonobject.getString("country");
                                        String url = jsonobject.getString("flag");
                                        movie.setTitle(name);
                                        movie.setThumbnailUrl(url);
                                        movieList.add(movie);
                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
    
                                }
                            }
                            else {
                                Log.e("ServiceHandler", "No data received from HTTP request");
    
                            }


     

×
×
  • أضف...