2014-12-07 67 views
0

我有一個簡單的列表視圖我想使用數組適配器填充。我只想在其中放入一個字符串。我對我有意義,但顯然不工作,因爲沒有任何顯示!我很確定我的錯誤在於:ArrayAdapter沒有顯示任何列表視圖

public class PartiesAdapter extends ArrayAdapter<String> { 

private List<String> parties; 

public PartiesAdapter(Context context, int resource, List<String> list) { 
    super(context, resource); 
    this.parties = list; 
} 

@Override 
public View getView(int position, View view, ViewGroup parent) { 
    if (view == null) { 
     LayoutInflater viewInflator = LayoutInflater.from(getContext()); 
     view = viewInflator.inflate(R.layout.parties_item, null); 
    } 
    String party = parties.get(position); 

    TextView party_name = (TextView) view.findViewById(R.id.party_item); 
    party_name.setText(party); 

    return view; 
} 
} 

我是否正確填充每一行?

+0

請張貼適配器的所有代碼。 – Emmanuel 2014-12-07 00:55:33

+0

只是貼了其餘的適配器,雖然沒有太多的它 – 9er 2014-12-07 00:58:15

+0

黨是永遠不會空。大聲笑..先生? – Elltz 2014-12-07 01:02:51

回答

0

而是在適配器使用自己的列表的變量,你應該使用內置的名單像這樣

public class PartiesAdapter extends ArrayAdapter<String> { 

    public PartiesAdapter(Context context, int resource, List<String> list) { 
     super(context, resource,list); 
    } 

    @Override 
    public View getView(int position, View view, ViewGroup parent) { 
     if (view == null) { 
      LayoutInflater viewInflator = LayoutInflater.from(getContext()); 
      view = viewInflator.inflate(R.layout.parties_item, parent,false); 
     } 
     String party = getItem(position); 

     TextView party_name = (TextView) view.findViewById(R.id.party_item); 
     party_name.setText(party); 

     return view; 
    } 
}  
+0

同時膨脹,你應該儘量避免傳遞null,並使用像這樣的'view = viewInflator.inflate(R.layout.parties_item,parent,false)''。 – Panther 2014-12-07 08:55:51

0

你的問題出現是因爲你延伸的方式ArrayAdapterArrayAdapter有這樣的構造函數,你想要做什麼:

ArrayAdapter(android.content.Context, int, java.util.List<T>)

只要記住,ArrayAdapter需要你對你所提供的佈局TextView或使用該構造,可以讓你指定的其他版本和ID的TextView在佈局內。

您無需爲您的用例擴展ArrayAdapter

0

原來我需要在ArrayAdapter

@Override 
public int getCount(){ 
    return parties.size(); 
} 
+0

如果在擴展'ArrayAdapter'時實現'BaseAdapter',這是真的,因爲它已經知道List的大小;它正在傳遞給構造函數。 – Emmanuel 2014-12-07 01:15:14

0

實現getCount()方法而不是

new PartiesAdapter(...) 

呼叫

new ArrayAdapter(context, R.layout.parties_item, R.id.party_item, parties) 

也刪除PartiesAdapter,因爲它試圖做一些事情ArrayAdapter可以開箱即用。

相關問題