listview是一种常用的组件,用来列表展示数据,效果如下
具体的思路是:
先有一个主布局文件,里面是一个listview,再有一个子布局文件,里面包含每行要显示的控件,比如本例中,3个textview和一个imageview。
然后把子布局放到主布局里显示。
具体代码及注释如下
com.yuanlp.studentsystemandroid.os.Bundleandroid.support.v7.app.AppCompatActivityandroid.view.LayoutInflaterandroid.view.Viewandroid.view.ViewGroupandroid.widget.BaseAdapterandroid.widget.EditTextandroid.widget.ImageViewandroid.widget.ListViewandroid.widget.TextViewcom.yuanlp.studentsystem.bean.StudentInfojava.util.ArrayListjava.util.Listcom.yuanlp.studentsystem.R.id.com.yuanlp.studentsystem.R.id.com.yuanlp.studentsystem.R.id.MainActivity AppCompatActivity {
EditText EditText EditText ListView List<StudentInfo> (Bundle savedInstanceState) {
.onCreate(savedInstanceState)setContentView(R.layout.)initView()}
(){
= (EditText) findViewById(R.id.)= (EditText) findViewById(R.id.)= (EditText) findViewById(R.id.)= (ListView) findViewById(R.id.)= ArrayList<StudentInfo>()(i=i<i++){
StudentInfo student=StudentInfo()student.setId(i)student.setName(+i)student.setPhone(+i).add(student)}
myAdapter myadapter=myAdapter().setAdapter(myadapter)}
(View view){
}
myAdapter BaseAdapter {
() {
.size()}
StudentInfo (position) {
.get(position)}
(position) {
}
View (positionView convertViewViewGroup parent) {
ViewHolder holder=(convertView==){ holder=ViewHolder()View view=LayoutInflater.(MainActivity.).inflate(R.layout.)convertView= viewholder.= (TextView)convertView. findViewById()holder.= (TextView) convertView.findViewById()holder.= (TextView) convertView.findViewById()holder.= (ImageView) convertView.findViewById(R.id.)convertView.setTag(holder)}{
holder= (ViewHolder) convertView.getTag()}
holder..setOnClickListener(View.OnClickListener() {
(View v) {
.remove().setAdapter(myAdapter())}
})StudentInfo student=.get(position)holder..setText(student.getId()+)holder..setText(student.getName())holder..setText(student.getPhone())convertView}
}
ViewHolder{
TextView TextView TextView ImageView }
}本文出自 “YuanGuShi” 博客,请务必保留此出处http://cm0425.blog.51cto.com/10819451/1941671
原文地址:http://cm0425.blog.51cto.com/10819451/1941671