私はListview
複数のビューを持っています.次のコードを使用して2番目の項目に選択を設定しようとしました.しかし、ビューは常にnull
です.助けてください.文字制限のため、リストビューに使用されるレイアウトを添付できません
View view = ListView.getChildAt(0);
int top = (view == null) ? 0 : view.getTop();
// restore list
ListView.setSelectionFromTop(ListView.getFirstVisiblePosition() + 1, top);
アダプタ
@Override
public int getItemViewType(int position) {
if (Details.get(position).getView_type() == 1)
return ITEM_TYPE_ONE;
else if (Details.get(position).getView_type() == 0)
return ITEM_TYPE_THREE;
else
return ITEM_TYPE_TWO;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
vi = convertView;
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case ITEM_TYPE_ONE:
vi = inflater.inflate(R.layout.feed_detail_list_item_selected,
null);
holder.name = (TextView) vi
.findViewById(R.id.list_item_name_txt);
holder.profilepic = (ImageView) vi
.findViewById(R.id.list_item_profile_img);
break;
case ITEM_TYPE_TWO:
vi = inflater.inflate(R.layout.listlastrow, null);
holder.name = (TextView) vi.findViewById(R.id.msg);
break;
case ITEM_TYPE_THREE:
vi = inflater
.inflate(R.layout.feed_details_parent_layout, null);
holder.name = (TextView) vi.findViewById(R.id.ownerName);
holder.profilepic = (ImageView) vi
.findViewById(R.id.thumb_image);
holder.VoiceBar = (SeekBar) vi
.findViewById(R.id.message_seekbar);
holder.voice_bar_layout = (LinearLayout) vi
.findViewById(R.id.seekbar_layout);
break;
}
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if (type == ITEM_TYPE_TWO) {
holder.name.setTypeface(tfNormal);
((LinearLayout) vi.findViewById(R.id.ll))
.setBackgroundColor(mContext.getResources().getColor(
R.color.white));
if (Details.size() == 2) {
holder.name.setVisibility(View.VISIBLE);
holder.name.setText(mContext.getResources().getString(
R.string.no_replies));
} else {
holder.name.setVisibility(View.GONE);
}
}
}
return vi;
}