1

当我试图遍历数据库时,我的活动挂断了,什么也没有发生。

    final JSONArray jArray = new JSONArray(result);
    while (i < jArray.length()) {
        JSONObject json = jArray.getJSONObject(i);
        title.setText(json.getString("PhoneName"));
        price.setText("Price : " + json.getString("PhonePrice"));
        modelnumber.setText(json.getString("ModelNumber"));
        arrowfront.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                i++;
            }
        });
        arrowback.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                i--;
            }
        });
    }
} catch (Exception e) {
    Log.e("tag", e.toString());
}
}

我正在尝试连接到数据库,首先 textviews 显示第一项,然后当我单击箭头时,我想显示表格的第二行,依此类推。但是当活动启动时,它挂断了,什么也没有即使我在 logcat 中没有收到错误,也会发生在 logcat 中,“标签”没有出现。有什么建议吗??

4

1 回答 1

0

好的,这样做:

final JSONArray jArray = new JSONArray(result);
private ArrayList<HashMap<String,String>> resultList = new ArrayList<HashMap<String,String>>();
int position=0;

for (int i=0;i<jArray.length();i++) {
HashMap<String,String> hm= new HashMap<String,String>();
JSONObject json = jArray.getJSONObject(i);
hm.put("title",json.getString("PhoneName"));
hm.put("price","Price : " + json.getString("PhonePrice"));
hm.put("modelNumber",json.getString("ModelNumber"));
resultList.add(hm);
}

arrowfront.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                position++;
HashMap <String,String> frontHm = new HashMap <String,String>();
frontHm=resultList.get(position);
        title.setText(frontHM.get("title");
        price.setText(frontHM.get("price"));
        modelnumber.setText(frontHM.get("modelNumber"));
            }
        });

arrowback.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                position--;
HashMap <String,String> backHm = new HashMap <String,String>();
backHm=resultList.get(position);
        title.setText(backHM.get("title");
        price.setText(backHM.get("price"));
        modelnumber.setText(backHM.get("modelNumber"));
            }
        });

所以想法是继续跟踪全局“位置”变量中的位置。另外我没有在点击监听器中添加逻辑来检查第一个和最后一个位置,因为你不能超出arraylist的范围,请自己做。

于 2013-07-02T14:02:56.313 回答