2017-05-28 43 views
0

我想創建一個從我的數據庫中的表中的每個條目的列表視圖(simpleadapter)到一個新的活動。但是在編譯下面的代碼後,我只能找回第一個條目。爲什麼我的mysql表中的後續結果沒有在我的listview中創建一個新的對象?

我試圖通過更改int i = 0來查看是否可以獲得第二個條目(我能夠),並嘗試更改response.length()以查看將其更改爲「3」是否會顯示多於1個條目(其中我不能)。

我跟着​​但我認爲他的方法似乎過時了。我正在嘗試使用抽球。

這是我的PHP文件中生成的結果:

[ {"image_url":"https:\/\/kowhx.000webhostapp.com\/codes\/shop\/ny.png","name":"ny","price":"10.5"}, 
    {"image_url":"https:\/\/kowhx.000webhostapp.com\/codes\/shop\/ty.png","name":"ty","price":"11.5"}] 

這是我的代碼:

public class MenuList extends AppCompatActivity { 

    private static final String TAG_NAME="name"; 
    private static final String TAG_PRICE="price"; 
    private static final String TAG_IMAGEURL="image_url"; 

    ListView list; 
    private ArrayList<HashMap<String,String>> menuList; 
    RequestQueue rq; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_menu_list); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

    rq = Volley.newRequestQueue(this); 
    menuList = new ArrayList<>(); 
    list = (ListView) findViewById(R.id.menuListView); 
    fetch(); 

} 



public void fetch(){ 
    SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 
    String url = "https://kowhx.000webhostapp.com/codes/getMenu.php?username="+sharedPreferences.getString(Config.EMAIL_SHARED_PREF,"Not Available"); 
    final JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 

      for (int i = 0; i < response.length(); i++) { 
       HashMap<String, String> dish = new HashMap<>(); 
       try { 
        JSONObject jsonObject = response.getJSONObject(i); 
        String name = jsonObject.getString(TAG_NAME); 
        String price = jsonObject.getString(TAG_PRICE); 
        String imageUrl = jsonObject.getString(TAG_IMAGEURL); 

        dish.put(TAG_NAME, name); 
        dish.put(TAG_PRICE, price); 
        dish.put(TAG_IMAGEURL, imageUrl); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       menuList.add(dish); 
      } 
      ListAdapter adapter = new SimpleAdapter(MenuList.this, menuList, R.layout.menu_item, new String[]{TAG_NAME, TAG_PRICE, TAG_IMAGEURL}, new int[]{R.id.menuName, R.id.menuPrice, R.id.menuImage}); 
      list.setAdapter(adapter); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

     }} 
    ); 
    rq.add(jsonArrayRequest); 

回答

0

哦,其實它的工作原理,但只是我的佈局是使用nestedscrollview所以列表視圖韓元不會顯示多於一個項目。如果我將其更改爲相對佈局,一切都將解決。

相關問題