因初學android在嘗試寫app
本身無資訊的相關基礎,在寫app的過程中遇到好多困難QQ
最近好不容易在fragment成功加上listview了
結果加上點擊listview跳轉到另一個activity頁面的code時,原本的listview又不見了><
找了好久找不出原因,想麻煩各位幫我看一下問題出在哪邊~~
感謝!!
以下是有關listview和點擊事件相關的code
到 lv.setAdapter(dogAdapter); 這行原本都ok,執行的時後listview也有出來
一直到加了setOnItemClickListener,執行的時後,原本的listview都不見了。
(不知是否要貼完整的code,因為新手寫的很亂又很爛,若需要完整碼請告訴我,感謝)
private void getPetList(int t) {
volleyRequest = VolleyRequest.getInstance(getActivity());
volleyRequest.addRequest(new JsonArrayRequest(url + t, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray json) { //接到json資料
if(json != null && json.length() > 0) { //判斷是否為null及有東西
moKidList = new ArrayList<>(); //這裡才new一個list
for (int i = 0; i < json.length(); i++) { //把每個json都拿出來處理
try {
JSONObject jo = json.getJSONObject(i); //拿到每個josn
moKid = new MoKid(getActivity(), jo); //把拿出來的jo丟到mokid裡
moKidList.add(moKid); //把mokid存到list裡
} catch (Exception e) {
e.printStackTrace(); //在命令行打印异常信息在程序中出错的位置及原因。
}
}
DogAdapter dogAdapter = new DogAdapter(getActivity(), moKidList); // listview連接每行資料
lv.setAdapter(dogAdapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
/* 下面onItemClick四個參數
* 1:號碼牌,告訴你點的是哪個list
* 2:點list任何區塊都可操控這個list
* 3:這個list的編號
* 4:這個list在listview是第幾行的位置
*/
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent();
intent.setClass(getActivity(), DetailActivity.class); //(目前頁面, 要跳去的頁面)
Bundle bundle = new Bundle();
bundle.putSerializable("pet", moKid);
intent.putExtras(bundle);
startActivity(intent);
}
});
} else {
lv.setAdapter(null); // 若無資料,清空list(若不加這行,會顯示剛貓或狗的資料,因是加載,非先清空再加載)
Toast.makeText(getActivity(), "目前尚無資料喔~", Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("error:" + error.getMessage());
}
}));
}