目录
基于Empty Activity模板创建安卓应用Contacts
打开主布局资源文件 activity_main.xml输入代码:
创建联系人列表项模板contact_list_item.xml并输入代码:
基于Empty Activity
模板创建安卓应用Contacts
将图片素材拷贝到drawable
目录
打开字符串资源文件strings.xml
具体代码:
<resources> <string name="app_name">通讯录</string> <string name="icon">图标</string> <string name="name">姓名</string> <string name="phone">电话</string> </resources>
打开主布局资源文件 activity_main.xml输入代码:
具体代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical" android:padding="10dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_icon" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:layout_weight="0.5" android:text="@string/icon" android:textSize="20sp" /> <TextView android:id="@+id/tv_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/name" android:textSize="20sp" /> <TextView android:id="@+id/tv_phone" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.5" android:text="@string/phone" android:textSize="20sp" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:background="#000000" /> <ListView android:id="@+id/lv_contact" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView> </LinearLayout>
创建联系人列表项模板contact_list_item.xml并输入代码:
具体代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/iv_icon" android:layout_width="60dp" android:layout_height="60dp" android:layout_marginRight="10dp" android:scaleType="fitXY" android:src="@drawable/img1" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0000ff" android:textSize="20sp" /> </LinearLayout> <TextView android:id="@+id/tv_contact_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="90dp" android:layout_marginBottom="10dp" android:textColor="#555555" android:textSize="16sp" /> </LinearLayout>
打开主界面类MainActivity输入代码:
具体代码:
package net.zyt.contacts; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView lvContact;//联系人列表控件-展示 private SimpleAdapter adapter;//简单适配器-桥梁 private List<HashMap<String,Object>>contacts;//联系人列表-数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //利用布局资源文件设置用户界面 setContentView(R.layout.activity_main); // 通过资源标识符获取控件实例 lvContact = findViewById(R.id.lv_contact); // 初始化联系人列表(数据源),作为列表控件数据源 contacts = getContacts(); // 创建简单适配器作为桥梁 adapter = new SimpleAdapter( this, // 上下文-当前窗口 contacts, // 数据源(列表)-联系人列表 R.layout.contact_list_item, // 列表项模板 new String[] {"icon", "name", "phone"}, // 字段名数组 new int[] {R.id.iv_icon, R.id.tv_name, R.id.tv_phone} // 控件标识数组 ); // 给列表控件设置适配器 lvContact.setAdapter(adapter); // 给列表控件注册项单击监听器 lvContact.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { Toast.makeText(MainActivity.this, contacts.get(position).get("name") + " " + contacts.get(position).get("phone"), Toast.LENGTH_SHORT).show(); } }); } /** 获取联系人列表 * @return 联系人列表 */ private List<HashMap<String, Object>> getContacts() { // 声明联系人列表 List<HashMap<String, Object>> contacts = new ArrayList<>(); // 声明联系人 HashMap<String, Object> contact = null; // 创建第1个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img1); contact.put("name", "李红梅"); contact.put("phone", "15895953456"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第2个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img2); contact.put("name", "王晓玲"); contact.put("phone", "13956572345"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第3个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img3); contact.put("name", "唐语涵"); contact.put("phone", "15845891234"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第4个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img4); contact.put("name", "佟大为"); contact.put("phone", "13934345680"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第5个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img5); contact.put("name", "钟小翠"); contact.put("phone", "15890904520"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第6个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img6); contact.put("name", "张三丰"); contact.put("phone", "13890985670"); // 将联系人添加到联系人列表 contacts.add(contact); // 创建第7个联系人 contact = new HashMap<>(); contact.put("icon", R.drawable.img7); contact.put("name", "刘玉玲"); contact.put("phone", "15895673450"); // 将联系人添加到联系人列表 contacts.add(contact); // 返回联系人列表 return contacts; } }