发布时间:2018-06-12作者:laosun阅读(4125)
使用ArrayAdapter数据适配器构建通讯录样式,如下所示:
直接上代码,其余的参数详情自己去搜索一下即可
activity_main.xml 文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv_tab" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center" android:text="通讯录展示" /> <View android:id="@+id/hlfgx" android:layout_below="@+id/tv_tab" android:layout_width="match_parent" android:layout_height="2dp" android:background="#c0c0c0"></View> <!-- android:divider="#f9b68b" //分割线颜色 android:dividerHeight="1dp" //分割线边距 android:scrollbars="none" //不显示滚动条 android:fadingEdge="none" 去掉上边和下边黑色的阴影 --> <ListView android:id="@+id/contacts_list" android:layout_below="@+id/hlfgx" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#c0c0c0" android:dividerHeight="1dp"></ListView> </RelativeLayout>
创建listview_contact.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lv_c" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp"> <!-- 设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。 如果想设置图片固定大小,又想保持图片宽高比,需要如下设置: 1) 设置setAdjustViewBounds为true; 2) 设置maxWidth、MaxHeight; 3) 设置设置layout_width和layout_height为wrap_content。 --> <ImageView android:id="@+id/avatar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="15dp" android:adjustViewBounds="true" android:maxHeight="48dp" android:maxWidth="48dp" android:src="@drawable/ad" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/avatar" android:layout_alignTop="@+id/avatar"/> <TextView android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/avatar" android:layout_alignBottom="@+id/avatar"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="操作"/> </RelativeLayout>
创建java对象类,Contacts.java
/** * Created by lw on 2017/4/14. */ public class Contacts { private String avatar; private String name; private String phone; public Contacts(String avatar, String name, String phone) { this.avatar = avatar; this.name = name; this.phone = phone; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
自定义 ContactsAdapter
import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; /** * Created by sun on 2018/6/4. */ public class ContactsAdapter extends ArrayAdapter { private final int resourceId; public ContactsAdapter(Context context, int resourceId, List<Contacts> objects) { super(context, resourceId, objects); this.resourceId = resourceId; } /** * 重写getView方法 * @param position * @param convertView * @param parent * @return */ @Override public View getView(int position, View convertView, ViewGroup parent) { Log.i("sunjs_","position:"+position); Contacts fruit = (Contacts) getItem(position); // 获取当前项的Fruit实例 View view = LayoutInflater.from(getContext()).inflate(resourceId, null);//实例化一个对象 //放入图片 ImageView iv = (ImageView) view.findViewById(R.id.avatar); iv.setBackgroundResource(R.drawable.ad); //设置名称 TextView fruitName = (TextView) view.findViewById(R.id.name); fruitName.setText(fruit.getName()); //设置手机号 TextView fruitPhone = (TextView) view.findViewById(R.id.phone); fruitPhone.setText(fruit.getPhone()); return view; } }
MainActivity 中修改一下
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private List<Contacts> cList = new ArrayList<Contacts>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initContacts(); // 初始化水果数据 ContactsAdapter adapter = new ContactsAdapter(MainActivity.this, R.layout.listview_contact, cList); ListView listView = (ListView) findViewById(R.id.contacts_list); listView.setAdapter(adapter); } private void initContacts() { for(int i=0;i<20;i++){ Contacts a1 = new Contacts(null, "赵先生", "18912345678"); cList.add(a1); Contacts a2 = new Contacts(null, "钱老师", "18912345678"); cList.add(a2); Contacts a3 = new Contacts(null, "孙大圣", "18912345678"); cList.add(a3); Contacts a4 = new Contacts(null, "李小姐", "18912345678"); cList.add(a4); Contacts a5 = new Contacts(null, "周将军", "18912345678"); cList.add(a5); } } }
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/0dbb7d36afd44a8687d40c71fae477e6.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。