我想用兩個不同的佈局使用ArrayAdapter充氣listView。Android如何充氣ListView與兩個不同的項目
我想顯示一些用戶帖子。如果它包含圖片,則使用一個佈局,如果它不使用第二個。
我這樣做,到目前爲止
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Post post = getItem(position);
boolean noImg = post.mImgUrl1 == null && post.mImgUrl2 == null;
if (convertView == null){
if (noImg)
convertView = LayoutInflater.from(getContext()).inflate(R.layout.post_item_no_img, parent ,false);
else
convertView = LayoutInflater.from(getContext()).inflate(R.layout.post_item, parent, false);
}
if (noImg == false) {
mTitle = (TextView) convertView.findViewById(R.id.tv_titlePost);
mText = (TextView) convertView.findViewById(R.id.tv_textPost);
mImage = (ImageView) convertView.findViewById(R.id.iv_postimg);
}
else {
mNoImgTitle = (TextView) convertView.findViewById(R.id.tv_noImgTitle);
mNoImgText = (TextView) convertView.findViewById(R.id.tv_noImgText);
}
if (noImg) {
mNoImgTitle.setText(post.mTitle);
mNoImgText.setText(post.mText);
if (post.mImgUrl1 != null)
Glide.with(mImage.getContext()).load(post.mImgUrl1).into(mImage);
else Glide.with(mImage.getContext()).load(post.mImgUrl2).into(mImage);
}
else {
mNoImgTitle.setText(post.mTitle);
mNoImgText.setText(post.mText);
}
return convertView;
}
但我意識到,從第二佈局textviews無法通過findViewById功能被發現。它總是返回一個空指針。
我的解決方案是什麼?我應該只做一個佈局,並以某種方式使用可視性來欺騙它?或者有一種方法?
的可能的複製[Android的列表視圖ArrayAdapter與兩個佈局](https://stackoverflow.com/questions/29721753/android-listview-arrayadapter-with-two-layouts) –