2014-11-27 2 views
0

Я общедоступные таблицы Google, что я вытягивать данные и загрузки в качестве ArrayList < HashMap < String, String>>Android данных электронных таблиц в ArrayList HashMap населяющих ListView

я пытаюсь заполнить его в пользовательский ListView.

По существу моя таблица имеет всего 3 столбца «Временная метка» «question1» и «question2». Я предполагаю, что ключи для хэш-карт должны быть одинаковыми, только значение изменилось бы?

Я использую пользовательский ArrayAdapter с пользовательским расположением xml с тремя текстовыми элементами. В моем getView() я пытаюсь выполнить итерацию через HashMap и заполнить список. Кажется, я не могу заставить это работать. Когда я бегу, это только показывает мне самую последнюю ячейку.

Это код, я использую, чтобы вытащить отдельные строки из электронной таблицы и поместить его в HashMap:

  // Print entries 
      for(ListEntry row : feed.getEntries()) 
      { 

      //Print the first column's cell value 
       System.out.println("new row"); 

       for(String i : row.getCustomElements().getTags()) 
       { 

        System.out.println("  "+i + ": " + row.getCustomElements().getValue(i)); 

        rowMap.put(row.getCustomElements().getValue("question1"), 
          row.getCustomElements().getValue(i)); 

        pulledData2.add((HashMap<String, String>) rowMap);         

       } 
      } 

Список переходников, GetView()

private class ListAdapter extends ArrayAdapter<HashMap<String, String>> { 

     private ArrayList<HashMap<String, String>> mItems = pulledData2; 
     public ListAdapter(DashboardActivity dashboardActivity, ArrayList<HashMap<String, String>> items, LayoutInflater inflater){ 

      super(dashboardActivity, -1, items); 
      this.mItems = items;  
    }  

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 

     //inflate the custom view 
     if (convertView == null){ 
      LayoutInflater inflater = (LayoutInflater) 
        DashboardActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      convertView = inflater.inflate(R.layout.listview_each_item, parent, false); 
     } 

      ((TextView)convertView.findViewById(R.id.textViewTimeStamp)) 
           .setText(mItems.get(position).get("question1")); 
+0

лучше использовать класс модели с помощью метода геттер сеттер –

+0

пожалуйста, не могли бы вы объяснить, или направить меня по направлению к примеру? Благодаря! – bakuryu06

ответ

0

так мой проблема заключалась в том, что я не создавал новую хэш-карту каждый раз, когда вытягивалась строка. Я добавил время цикла и теперь у меня есть HashMaps

уникального мировоззрения
     while(i <= pulledData.size()) { 

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

          item.put(tag, row.getCustomElements().getValue(tag)); 

          //pulledData.add(entry.getCustomElements().getValue(tag)); 
          pulledData2.add(i, item); 
          i++; 
         }