2015-08-25 3 views
0

Я пытаюсь сделать цикл для итерации через TreeMap, получить его значения и отобразить их в TableRow, но его не работает, основная проблема заключается в том, что мне нужно вставить 7 текстовых просмотров в tablerow, а затем создать еще один tablerow с еще 7 текстовыми просмотров и т. д., я также попытался использовать цикл for со значениями из ArrayList, но я не могу понять, как изменить поведение цикла каждый раз, когда добавлено 7 текстовых просмотров.Создайте TableRows, используя данные из TreeMap android

Heres код для TreeMap:

public void mapTest() 
{ 
    Map<String, Object[]> data = new TreeMap<String, Object[]>(); 
    data.put("1", new Object[] {"Diego","Diego","Diego","Diego","Diego","Diego","Diego"}); 
    data.put("2", new Object[] {"Barrena","Barrena","Barrena","Barrena","Barrena","Barrena","Barrena"}); 

    Set<String> keyset = data.keySet(); 

    for (String key : keyset) 
    { 
     Object [] objArr = data.get(key); 
     for (Object obj : objArr) 
     { 
      TableRow newRow = new TableRow(this); 
      newRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 
      TextView newText = new TextView(this); 
      newText.setText((String)obj); 
      newText.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 
      newRow.addView(newText); 
     } 

    } 
} 

Вот код для цикла с ArrayList:

public void addItemsTable(){ 
    addToPrueba(); 
    // reference the table layout 
    TableLayout tbl = (TableLayout)findViewById(R.id.Employees); 

    TableRow newRow = new TableRow(this); 
    newRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 

    for(int i = 0; i<prueba.size(); i++) { 
     TextView newText = new TextView(this); 
     newText.setText(prueba.get(i)); 
     newText.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 
     newRow.addView(newText); 
    } 

    tbl.addView(newRow); 
} 

ответ

0

Для тех, кто борется с этим, это код, который работал

public void mapPrueba() 
{ 
    Map<String, Object[]> data = new TreeMap<String, Object[]>(); 
    data.put("1", new Object[] {"Diego","Diego","Diego","Diego","Diego","Diego","Diego"}); 
    data.put("2", new Object[] {"Barrena","Barrena","Barrena","Barrena","Barrena","Barrena","Barrena"}); 

    Set<String> keyset = data.keySet(); 

    TableLayout tbl = (TableLayout)findViewById(R.id.Employees); 

    for (String key : keyset) 
    { 
     TableRow newRow = new TableRow(this); 
     newRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); 
     Object [] objArr = data.get(key); 
     for (Object obj : objArr) 
     { 
      TextView newText = new TextView(this); 
      newText.setText((String)obj); 
      newText.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 
      newRow.addView(newText); 
     } 
     tbl.addView(newRow); 
    } 
} 

надеюсь, что кому-то это будет полезно!