为了账号安全,请及时绑定邮箱和手机立即绑定

求解!为什么运行后模拟器一片空白~ 代码附上了~

MyAdapter.java

public class MyAdapter extends BaseAdapter {
   private LayoutInflater mInflater;
   private List<Bean> mDatas;
   public MyAdapter(Context context,List<Bean> datas) {
       mInflater = LayoutInflater.from(context);
       mDatas = datas;
   }

   @Override
   public int getCount() {
      return mDatas.size();
   }

   @Override
   public Object getItem(int position) {
       return mDatas.get(position);
   }

   @Override
   public long getItemId(int position) {
       return position;
   }

   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
       ViewHolder holder = null;
       if(convertView == null){
           convertView = mInflater.inflate(R.layout.item_listview,parent,false);
           holder = new ViewHolder();

           holder.mTitle = (TextView)convertView.findViewById(R.id.id_title);
           holder.mDesc = (TextView)convertView.findViewById(R.id.id_desc);
           holder.mTime = (TextView)convertView.findViewById(R.id.id_time);
           holder.mPhone = (TextView)convertView.findViewById(R.id.id_phone);

           convertView.setTag(holder);
       }else{
           holder = (ViewHolder)convertView.getTag();
       }
       Bean bean = mDatas.get(position);
       holder.mTitle.setText(bean.getTitle());
       holder.mDesc.setText(bean.getDesc());
       holder.mTime.setText(bean.getTime());
       holder.mPhone.setText(bean.getPhone());

       return convertView;
   }
   private class ViewHolder{
       TextView mTitle;
       TextView mDesc;
       TextView mTime;
       TextView mPhone;

   }

MainActivity.java

public class MainActivity extends Activity {
   private ListView mListView;
   private List<Bean> mDatas;
   private MyAdapter myAdapter;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       initDatas();
       initView();
   }

   private void initView() {
       mListView = (ListView)findViewById(R.id.id_listview);
       mListView.setAdapter(myAdapter);

   }

   private void initDatas() {
       mDatas = new ArrayList<Bean>();
       Bean bean = new Bean("Android新技能1",
               "Android-打造万能的ListView和GridView适配器",
               "2015-10-12", "10086");
       mDatas.add(bean);
        bean = new Bean("Android新技能2",
               "Android-打造万能的ListView和GridView适配器",
               "2015-10-12", "10086");
       mDatas.add(bean);
        bean = new Bean("Android新技能3",
               "Android-打造万能的ListView和GridView适配器",
               "2015-10-12", "10086");
       mDatas.add(bean);
        bean = new Bean("Android新技能4",
               "Android-打造万能的ListView和GridView适配器",
               "2015-10-12", "10086");
       mDatas.add(bean);
        bean = new Bean("Android新技能5",
               "Android-打造万能的ListView和GridView适配器",
               "2015-10-12", "10086");
       mDatas.add(bean);


       myAdapter = new MyAdapter(this,mDatas);

   }



正在回答

2 回答

MainActivity.java
public class MainActivity extends AppCompatActivity {
    private ListView mlistView;
    private List<ContactsBean> mData;
    private MyAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();


    }

    private void initData() {
        mData = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            ContactsBean bean = new ContactsBean(R.drawable.p1376360136, "Billd", "13917360951");
            mData.add(bean);

            bean = new ContactsBean(R.drawable.p1505752091, "Coco", "13818806406");
            mData.add(bean);

            bean = new ContactsBean(R.drawable.p1746919689, "Rokuhachi", "18616925671");
            mData.add(bean);

            bean = new ContactsBean(R.drawable.p1819927209, "Daku", "10086");
            mData.add(bean);
        }
        mAdapter = new MyAdapter(this, mData);
    }

    private void initView() {
        mlistView = (ListView) findViewById(R.id.LV);

        mlistView.setAdapter(mAdapter);
    }
}

MyAdapter.java
public MyAdapter(Context context, List<ContactsBean> data) {
        mlayoutInflater = LayoutInflater.from(context);
        mData = data;
        this.context = context;
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {
        ViewHolder viewHolder;
        if (convertView == null) {
            //convertView=View.inflate(context,R.layout.element_layout,null);
            convertView = mlayoutInflater.inflate(R.layout.element_layout, viewGroup, false);
            viewHolder = new ViewHolder();
            viewHolder.mName = (TextView) convertView.findViewById(R.id.ETV1);
            viewHolder.mPhone = (TextView) convertView.findViewById(R.id.ETV2);
            viewHolder.mIcon = (ImageView) convertView.findViewById(R.id.EIV1);

            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        ContactsBean bean = mData.get(position);
        viewHolder.mName.setText(bean.getName());
        viewHolder.mPhone.setText(bean.getTelephone());
        viewHolder.mIcon.setImageResource(bean.getIcon());

        return convertView;
    }

    private class ViewHolder {
        TextView mName;
        TextView mPhone;
        ImageView mIcon;
    }
}


0 回复 有任何疑惑可以回复我~
#1

lynhao 提问者

看看控制台有什么错误信息打印没? 这样看代码的逻辑和封装是没问题的,可能是一些小细节
2016-04-06 回复 有任何疑惑可以回复我~

不好意思~可能是模拟器问题~现在一切正常了 

0 回复 有任何疑惑可以回复我~
#1

sakamichi

和你一样的情况,请问是怎么解决的?
2016-04-06 回复 有任何疑惑可以回复我~
#2

lynhao 提问者 回复 sakamichi

这个很久以前的了,你贴个代码先
2016-04-06 回复 有任何疑惑可以回复我~
#3

sakamichi 回复 lynhao 提问者

代码来了。并没有完全照抄视频,但是思路应该是一样的。子控件布局中多加了个ImageView而已。百思不得其解。
2016-04-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-打造万能适配器
  • 参与学习       34701    人
  • 解答问题       107    个

本课程通过对传统的ListView数据绑定写法,打造万能适配器

进入课程

求解!为什么运行后模拟器一片空白~ 代码附上了~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信