Main
public class MainActivity extends AppCompatActivity { private ListView mLvMsgList; private List<Msg> mDatas = new ArrayList<>(); private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mLvMsgList = findViewById(R.id.list); mDatas.addAll(MsgLab.generateMockList()); mAdapter = new MyAdapter(this,mDatas); mLvMsgList.setAdapter(mAdapter); } }
适配器
public class MyAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mLayoutInflater; private List<Msg> mDatas; public MyAdapter(Context mContext, List<Msg> mDatas) { this.mContext = mContext; mLayoutInflater = LayoutInflater.from(mContext); this.mDatas = mDatas; } 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 viewHolder ; if (convertView==null){ convertView =mLayoutInflater.inflate(R.layout.list_text,parent,false); viewHolder = new ViewHolder(); viewHolder.tv = convertView.findViewById(R.id.tv); viewHolder.iv =convertView.findViewById(R.id.iv); convertView.setTag(viewHolder); }else { viewHolder = (ViewHolder) convertView.getTag(); } Msg msg = mDatas.get(position); viewHolder.tv.setText(msg.getContent()); viewHolder.iv.setImageResource(msg.getIv()); return convertView; } public static class ViewHolder{ TextView tv; ImageView iv; } }
虚拟数据
public class MsgLab { public static List<Msg> generateMockList() { List<Msg> msgList = new ArrayList<>(); Msg msg = new Msg("1", R.mipmap.ic_launcher); msgList.add(msg); msg = new Msg("2",R.mipmap.ic_launcher); msgList.add(msg); msg = new Msg("3",R.mipmap.ic_launcher); msgList.add(msg); msg = new Msg("4",R.mipmap.ic_launcher); msgList.add(msg); msg = new Msg("5",R.mipmap.ic_launcher); msgList.add(msg); msg = new Msg("6",R.mipmap.ic_launcher); msgList.add(msg); return msgList; } }
public class Msg { private String content; private int Iv; public Msg(String content, int iv) { this.content = content; Iv = iv; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getIv() { return Iv; } public void setIv(int iv) { Iv = iv; } }