2013-01-22 18 views
0

爲什麼當我寫適配器列表視圖,如下所示,listview元素隨機變化positin?對不起,我可怕的英語。listview元素的行爲

private class Adapt2 extends ArrayAdapter { 
      ArrayList<String> jsonBanks; 
      public Adapt2(Context context, int textViewResourceId, List objects) { 
        super(context, textViewResourceId, objects); 
        jsonBanks = new ArrayList<String>(); 
        jsonBanks.addAll((ArrayList<String>)objects); 
      } 

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

        if(convertView==null){ 
          LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
          convertView= vi.inflate(R.layout.main_item, parent,false); 

          TextView tv = (TextView)convertView.findViewById(R.id.itemText); 
          tv.setText(jsonBanks.get(position)); 

        } 

        return convertView; 
      } 
    } 
+1

它,因爲你不按照你的ListView的觀點持有人的做法。 –

回答

1

因爲你的convertview被重新使用。 試試這個

關注此有關更多詳細信息,所發生的事情

http://www.youtube.com/watch?v=wDBM6wVEO70

+0

「convertview正在重用」,元素更改位置? – fisher3421

+0

它不是他們改變位置。它的視覺表示被重用,因爲你的代碼在convertview不爲null的時候沒有做任何事情就會這樣做。這可能會產生類似於「元素更改位置」的效果......這是我的猜測 – AndroidGecko

+0

我明白,謝謝。 – fisher3421