2015-05-14 63 views
2

我有一個列表視圖適配器,它從數組中獲取數據並將它們放入列表視圖中。但是,listview只會顯示數組中的一個項目 - 並將其顯示在listview的所有行中。下面是我的代碼,看起來有什麼不對嗎?Android列表適配器 - 只給出一個值

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_2, android.R.id.text1, MainActivity.values) { 
       @Override 
       public View getView(int position, View convertView, ViewGroup parent) { 
       View view = super.getView(position, convertView, parent); 
       TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
       TextView text2 = (TextView) view.findViewById(android.R.id.text2); 

       int i = 0; 
       int p = 0; 

       text1.setText(MainActivity.values[i]); 
       text2.setText(MainActivity.numvalues[i]); 
       i++; 

       return view; 
       } 
      }; 
      listView.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 
    } 
+0

使用位置,而不是我的 –

回答

5

嘗試更換這些線路

int i = 0; 
int p = 0; 
text1.setText(MainActivity.values[i]); 
text2.setText(MainActivity.numvalues[i]); 
i++; 

text1.setText(MainActivity.values[position]); 
text2.setText(MainActivity.numvalues[position]); 

在代碼中的每個i的值被初始化爲0的時候,這就是爲什麼你會看到只有該行重複在您的列表視圖

3

嘗試使用position從陣列中獲取價值,而不是i其中每個項目設置爲0:

text1.setText(MainActivity.values[position]); 
text2.setText(MainActivity.numvalues[position]); 
+0

@ timbats1993,很高興幫您初始化的我... –

3

你做錯了。在getView方法,則需要每次

  int i = 0; 
      int p = 0; 

      text1.setText(MainActivity.values[i]); 
      text2.setText(MainActivity.numvalues[i]); 
      i++; 

更改您的代碼如下

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_2, android.R.id.text1, MainActivity.values) { 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
      View view = super.getView(position, convertView, parent); 
      TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
      TextView text2 = (TextView) view.findViewById(android.R.id.text2); 

      text1.setText(MainActivity.values[position]); 
      text2.setText(MainActivity.numvalues[position]); 

      return view; 
      } 
     }; 
     listView.setAdapter(adapter); 
} 
相關問題