用Fragment实现Tag换页,在第一个Fragment中嵌入了一个ViewPager和ListView。 都写好了,然后运行的时候弹出界面是ListView是不显示本人载入的内容,要下拉才显示。本人截个图给你们看看
一打开界面是
然后本人向下滑动,listView的内容才显示出来!
代码如下:
一打开界面是
然后本人向下滑动,listView的内容才显示出来!
代码如下:
View view = inflater.inflate(R.layout.home_pager, container, false); Notice_ItemBeanlist = new ArrayList<Notice_ItemBean>(); context = MyApplication.getInstance(); ListView listView = (ListView) view.findViewById(R.id.id_listView_notice); for (int i = 0; i < 20; i++) { Notice_ItemBeanlist.add(new Notice_ItemBean( R.drawable.ic_launcher, "本人是标题" + i, "本人是内容" + i)); } listView.setAdapter(new MyNoticeAdapter(context, Notice_ItemBeanlist));
适配器代码如下:
public class MyNoticeAdapter extends BaseAdapter{ private List<Notice_ItemBean> mlist; private LayoutInflater mInflater; public MyNoticeAdapter(Context home_page,List<Notice_ItemBean> mlist) { // TODO Auto-generated constructor stub this.mlist=mlist; mInflater=LayoutInflater.from(home_page); } @Override public int getCount() { // TODO Auto-generated method stub return mlist.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mlist.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder viewHolder; if(convertView==null){ viewHolder=new ViewHolder(); convertView=mInflater.inflate(R.layout.item_notice, null); viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image); viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title); viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content); convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder) convertView.getTag(); Notice_ItemBean bean =mlist.get(position); viewHolder.noitce_imag.setImageResource(bean.ItemImageResid); viewHolder.noitce_content.setText(bean.ItemContent); viewHolder.noitce_title.setText(bean.ItemTitle); } return convertView; } class ViewHolder{ private ImageView noitce_imag; private TextView noitce_title; private TextView noitce_content; } }
解决方案
10
viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image);
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
先声明viewHolder = null,这几行操作放在if(){}else{}外面
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
先声明viewHolder = null,这几行操作放在if(){}else{}外面
15
没显示的原因在于,你在if(convertView==null)中并没有为这些控件设置setText,所以在前面这几行就不会有数据,而后面那几行由于是进入了else的判断,而else的判断中题主已经为它们添加了setText了,所以滑下来才有数据
可以将你那几行setText同样放在if(convertView==null)中,如下:
可以将你那几行setText同样放在if(convertView==null)中,如下:
@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder viewHolder; if(convertView==null){ viewHolder=new ViewHolder(); convertView=mInflater.inflate(R.layout.item_notice, null); viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image); viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title); viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content); viewHolder.noitce_imag.setImageResource(bean.ItemImageResid); viewHolder.noitce_content.setText(bean.ItemContent); viewHolder.noitce_title.setText(bean.ItemTitle); convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder) convertView.getTag(); Notice_ItemBean bean =mlist.get(position); viewHolder.noitce_imag.setImageResource(bean.ItemImageResid); viewHolder.noitce_content.setText(bean.ItemContent); viewHolder.noitce_title.setText(bean.ItemTitle); } return convertView; }
15
更正一下:
应该是一开始设置ViewHolder为null,
然后将setText部分从else中拿出来:
应该是一开始设置ViewHolder为null,
然后将setText部分从else中拿出来:
@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder viewHolder = null; Notice_ItemBean bean; if(convertView==null){ viewHolder=new ViewHolder(); convertView=mInflater.inflate(R.layout.item_notice, null); viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image); viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title); viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content); convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder) convertView.getTag(); bean =mlist.get(position); } viewHolder.noitce_imag.setImageResource(bean.ItemImageResid); viewHolder.noitce_content.setText(bean.ItemContent); viewHolder.noitce_title.setText(bean.ItemTitle); return convertView; }