我有一個片段。這個片段在他的onCreateView方法中加載的視圖有一個ListView(A)(填充在適配器(A)中)。但是,此ListView(A)中有另一個ListView(B)。所以現在,我必須調用適配器(B)來填充此列表視圖(B)。如果我從片段調用它,我得到一個空指針,如果我從適配器(A)調用它,它不會崩潰,但它不起作用。使用適配器在列表視圖內填充ListView
如何在另一個內部調用適配器。
這是片段的代碼:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mContentView = inflater.inflate(R.layout.fragment_kidscontacts, container, false);
mAdapter = new KidsContactsAdapter(getActivity());
final ListView list = (ListView) mContentView.findViewById(R.id.listViewKidsContacts);
list.setAdapter(mAdapter);
return mContentView;
}
其中mAdapter是我提出的適配器(A)的呼叫。而mContentView是一個簡單的視圖。 現在,適配器(A)的代碼中,我有一個Holder對象創建了一個名爲holder(它包含了xml中的元素)。
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder; //this is the holder object I created
if (convertView == null) { //View received from parameter.
convertView = LayoutInflater.from(mContext).inflate(R.layout.kids_contacts_list_item, parent, false);
holder = new ViewHolder();
holder.listViewKidsContacts = (ListView) convertView.findViewById(R.id.insidelistViewKidsContacts); //ListView(B)
holder.kidImage = (ImageView) convertView.findViewById(R.id.kid_image);
holder.statusImageView = (ImageView) convertView.findViewById(R.id.status_image_view);
holder.nameTxtView = (TextView) convertView.findViewById(R.id.kid_friend_txtview);
holder.statusTextView = (TextView) convertView.findViewById(R.id.kid_status_txtview);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//Some work I do with the holder items assigning them
//Trying to fill the ListView(B)
KidsInsideContactsAdapter mAdapter = new KidsInsideContactsAdapter(((Activity)mContext)); //This is the adapter(B)
holder.listViewKidsContacts.setAdapter(mAdapter); //Assign the adapter(B) to the ListView(B)
return convertView;
}
我在適配器(B)內有一些日誌,但它們沒有顯示在LogCat中。列表視圖也不填充。它顯示好像沒有列表視圖。然而在xml中它是。
這解決了它。 getCount返回0,因爲我有一個錯誤,所以如果有人有類似的問題,檢查出來。 –
感謝隊友爲您的答案...我在適配器內調用適配器和listviews高度屬性被動態地改變了...初始是0 ...我注意到,當我改變目標更高,我看到listview項目不是visibled ..我看到你的答案後,我已經找到了問題......但是,爲什麼目標低api項目可見,但沒有更高的目標api? – Beyaz
真棒!!!!!!!! –