2017-05-06 3 views
0

私は多くの可能性を試してきましたが、どれもうまくいきませんでした。リストがすぐに変更されたときに表示されるように、3番目の値を変更する必要があります。arraylistでsettextを使う方法

JSONObject jsonObj = new JSONObject(jsonStr);

  JSONArray devices = jsonObj.getJSONArray("list"); 

      for (int i = 0; i < devices.length(); i++) { 
       JSONObject c = devices.getJSONObject(i); 
       String id = c.getString("id"); 
       String name = c.getString("name"); 
       String known = c.getString("known"); 
       String description = c.getString("description"); 
       String controllerId = c.getString("controllerId"); 


       JSONObject frequencySurvey = c.getJSONObject("frequencySurvey"); 
       if (frequencySurvey.has("5000")) { 
        JSONObject fivezero = frequencySurvey.getJSONObject("5000"); 

        String timestamp = fivezero.getString("timestamp"); 
        String clients = fivezero.getString("clients"); 
        String enabled = fivezero.getString("enabled"); 

        HashMap<String, String> device = new HashMap<>(); 

        device.put("id", id); 
        device.put("name", name); 
        device.put("enabled", enabled); 
        device.put("clients", clients); 

        DevicesList.add(device); 

       } 


ListAdapter adapter = new SimpleAdapter(Devices_5_0.this, DevicesList, 
      R.layout.list_item, new String[]{ "name","clients","enabled"}, 
      new int[]{R.id.name,R.id.clients, enabled}); 

    lv.setAdapter(adapter); 
私は値が "偽" または "真" と私が= falseをアクティブにされないが、trueに設定したい得る第三の値で

=アクティブ

OnCreateの

 tv = (TextView) findViewById(R.id.enabled); 
     DevicesList = new ArrayList<>(); 

とグローバルに宣言:

private ListView lv; 
private TextView tv; 
ArrayList<HashMap<String, String>> DevicesList; 
+0

あなたブールArrayListのですか? –

答えて

0

forループの条件でこれを試してください。

DevicesList.add(i,device); 

代わりの

DevicesList.add(device); 
関連する問題