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);