生活随笔
收集整理的這篇文章主要介紹了
补17
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 創(chuàng)建安卓應用
- 將圖片素材導入drawable
- 創(chuàng)建Congtact.java(聯(lián)系人實體類)、CongtactAdapter.java(聯(lián)系人列表)
- 創(chuàng)建聯(lián)系人列表布局文件
- 編寫布局文件activity_main.xml
- 編寫主界面類
- 編寫ContactAdapter.java
- 編寫Contact.java
- 查看效果
- 通訊錄(在聯(lián)系人之前加圖標)
- 創(chuàng)建安卓應用
- 將圖片素材放入drawable
- 創(chuàng)建contact_list_item.xml
- 編寫activity_main.xml
- 編寫主界面類
- 運行效果
創(chuàng)建安卓應用
將圖片素材導入drawable
創(chuàng)建Congtact.java(聯(lián)系人實體類)、CongtactAdapter.java(聯(lián)系人列表)
創(chuàng)建聯(lián)系人列表布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:id="@+id/ivContactIcon"android:layout_width="60dp"android:layout_height="60dp"android:src="@drawable/img1"android:layout_marginRight="10dp"android:scaleType="fitXY"/><TextViewandroid:id="@+id/tvContactName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#0000ff"android:textSize="20sp"/></LinearLayout><TextViewandroid:id="@+id/tvContactPhone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="25dp"android:textColor="#555555"android:textSize="16sp"/></LinearLayout>
編寫布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/background"android:padding="10dp"tools:context=".MainActivity"><ListViewandroid:id="@+id/lvContact"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>
編寫主界面類
package net.zjs.ContactList;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private ListView lvContact;//聯(lián)系人列表控件(展示)private ContactAdapter adapter;//聯(lián)系人適配器(橋梁)private List<Contact> contacts;//聯(lián)系人列表(數(shù)據(jù)源)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//利用布局資源文件設置用戶界面setContentView(R.layout.activity_main);//通過資源標識符獲取控件實例lvContact=findViewById(R.id.lvContact);//獲取聯(lián)系人數(shù)據(jù)作為數(shù)據(jù)源contacts=getContacts();//創(chuàng)建聯(lián)系人適配器adapter=new ContactAdapter(this,contacts);//給聯(lián)系人列表控件設置適配器lvContact.setAdapter(adapter);//給列表控件注冊監(jiān)聽器lvContact.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {//獲取聯(lián)系人數(shù)據(jù)Contact contact=contacts.get(position);//彈出吐司提示用戶Toast.makeText(MainActivity.this,contact.getContactName()+":"+contact.getContactPhone(),Toast.LENGTH_SHORT).show();}});}/** 聯(lián)系人列表* */private List<Contact> getContacts() {//創(chuàng)建聯(lián)系人列表List<Contact> contacts=new ArrayList<>();//聲明聯(lián)系人Contact contact=null;//創(chuàng)建第一個聯(lián)系人contact=new Contact();contact.setContactIcon(R.drawable.img1);contact.setContactName("lisa");contact.setContactPhone("12345678987");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第二個聯(lián)系人contact=new Contact();contact.setContactIcon(R.drawable.img2);contact.setContactName("甄氏秀");contact.setContactPhone("12345678987");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第三個聯(lián)系人contact=new Contact();contact.setContactIcon(R.drawable.img3);contact.setContactName("王美麗");contact.setContactPhone("12345678987");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第4個聯(lián)系人contact=new Contact();contact.setContactIcon(R.drawable.img4);contact.setContactName("錢珍朵");contact.setContactPhone("12345678987");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第5個聯(lián)系人contact=new Contact();contact.setContactIcon(R.drawable.img5);contact.setContactName("馬大哈");contact.setContactPhone("12345678987");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//返回聯(lián)系人列表return contacts;}
}
編寫ContactAdapter.java
package net.zjs.ContactList;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.List;/*** 功能:* 作者:zjs* 日期:2020年月13日*/
public class ContactAdapter extends BaseAdapter {private Context context;//上下文private List<Contact> contacts;//聯(lián)系人列表public ContactAdapter(Context context,List<Contact> contacts){this.context=context;this.contacts=contacts;}/** 列表項個數(shù)* */@Overridepublic int getCount() {return contacts.size();}/** id* 列表項* */@Overridepublic Object getItem(int id) {return contacts.get(id);}/*列表項標識*/@Overridepublic long getItemId(int id) {return id;}/** 列表項視圖* */@Overridepublic View getView(int id, View view, ViewGroup parent) {//聲明視圖容器ViewHolder holder;//判斷列表項視圖是否為空if(view==null){//利用布局填充器列表項模板轉換成列表項視圖view= LayoutInflater.from(context).inflate(R.layout.contact_item_list,null);//創(chuàng)建視圖容器holder=new ViewHolder();//獲取視圖容器里的控件實例holder.ivContactIcon=view.findViewById(R.id.ivContactIcon);holder.tvContactName=view.findViewById(R.id.tvContactName);holder.tvContactPhone=view.findViewById(R.id.tvContactPhone);//將視圖容器附加到列表項視圖view.setTag(holder);}else{//直接從列表項視圖里獲取視圖容器holder=(ViewHolder) view.getTag();}// //從列表項視圖通過資源標識符獲取控件實例
// ImageView ivContactIcon=view.findViewById(R.id.ivContactIcon);
// TextView tvContactName=view.findViewById(R.id.tvContactName);
// TextView tvContactPhone=view.findViewById(R.id.tvContactPhone);//獲取列表項要顯示的列表控件Contact contact=contacts.get(id);//利用聯(lián)系人數(shù)據(jù)設置列表視圖的三個控件
// ivContactIcon.setImageResource(contact.getContactIcon());
// tvContactName.setText(contact.getContactName());
// tvContactPhone.setText(contact.getContactPhone());holder.ivContactIcon.setImageResource(contact.getContactIcon());holder.tvContactName.setText(contact.getContactName());holder.tvContactPhone.setText(contact.getContactPhone());//返回列表項視圖return view;}/** 視圖容器* */private static class ViewHolder{ImageView ivContactIcon;TextView tvContactName;TextView tvContactPhone;}
}
編寫Contact.java
package net.zjs.ContactList;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.List;/*** 功能:* 作者:zjs* 日期:2020年月13日*/
public class ContactAdapter extends BaseAdapter {private Context context;//上下文private List<Contact> contacts;//聯(lián)系人列表public ContactAdapter(Context context,List<Contact> contacts){this.context=context;this.contacts=contacts;}/** 列表項個數(shù)* */@Overridepublic int getCount() {return contacts.size();}/** id* 列表項* */@Overridepublic Object getItem(int id) {return contacts.get(id);}/*列表項標識*/@Overridepublic long getItemId(int id) {return id;}/** 列表項視圖* */@Overridepublic View getView(int id, View view, ViewGroup parent) {//聲明視圖容器ViewHolder holder;//判斷列表項視圖是否為空if(view==null){//利用布局填充器列表項模板轉換成列表項視圖view= LayoutInflater.from(context).inflate(R.layout.contact_item_list,null);//創(chuàng)建視圖容器holder=new ViewHolder();//獲取視圖容器里的控件實例holder.ivContactIcon=view.findViewById(R.id.ivContactIcon);holder.tvContactName=view.findViewById(R.id.tvContactName);holder.tvContactPhone=view.findViewById(R.id.tvContactPhone);//將視圖容器附加到列表項視圖view.setTag(holder);}else{//直接從列表項視圖里獲取視圖容器holder=(ViewHolder) view.getTag();}// //從列表項視圖通過資源標識符獲取控件實例
// ImageView ivContactIcon=view.findViewById(R.id.ivContactIcon);
// TextView tvContactName=view.findViewById(R.id.tvContactName);
// TextView tvContactPhone=view.findViewById(R.id.tvContactPhone);//獲取列表項要顯示的列表控件Contact contact=contacts.get(id);//利用聯(lián)系人數(shù)據(jù)設置列表視圖的三個控件
// ivContactIcon.setImageResource(contact.getContactIcon());
// tvContactName.setText(contact.getContactName());
// tvContactPhone.setText(contact.getContactPhone());holder.ivContactIcon.setImageResource(contact.getContactIcon());holder.tvContactName.setText(contact.getContactName());holder.tvContactPhone.setText(contact.getContactPhone());//返回列表項視圖return view;}/** 視圖容器* */private static class ViewHolder{ImageView ivContactIcon;TextView tvContactName;TextView tvContactPhone;}
}
查看效果
通訊錄(在聯(lián)系人之前加圖標)
創(chuàng)建安卓應用
將圖片素材放入drawable
創(chuàng)建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:gravity="center_vertical"android:orientation="horizontal" ><ImageViewandroid:id="@+id/ivIcon"android:layout_width="0dp"android:layout_height="60dp"android:layout_marginRight="20dp"android:layout_weight="0.5"android:background="@drawable/img1" /><TextViewandroid:id="@+id/tvName"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:textColor="#0000ff"android:textSize="20sp" /><TextViewandroid:id="@+id/tvPhone"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1.5"android:textColor="#ff00ff"android:textSize="20sp" /></LinearLayout>
編寫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:orientation="vertical"android:padding="10dp"android:background="@drawable/background"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><TextViewandroid:id="@+id/tvIcon"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" /><TextViewandroid:id="@+id/lvName"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="@string/name"android:textSize="20sp" /><TextViewandroid:id="@+id/tvPhone"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1.5"android:text="@string/phone"android:textSize="20sp" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="#aaaaaa"/><ListViewandroid:id="@+id/lvContact"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></LinearLayout>
編寫主界面類
package net.zjs.contats;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class MainActivity extends AppCompatActivity {private ListView lvContact;//聯(lián)系人列表控件(展示的控件)private List<HashMap<String,Object>> contacts;//聯(lián)系人列表(數(shù)據(jù)源)private SimpleAdapter adapter;//簡單適配器(聯(lián)系的橋梁)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//利用布局資源文件設置用戶界面setContentView(R.layout.activity_main);//通過資源標識符獲取控件實例lvContact=findViewById(R.id.lvContact);//初始化聯(lián)系人列表(數(shù)據(jù)源)contacts=getContacts();//創(chuàng)建簡單適配器作為橋梁adapter=new SimpleAdapter(this,//上下文contacts,//數(shù)據(jù)源(列表)R.layout.contact_list_item,//列表項模板new String[]{"icon","name","phone"},//字段名/數(shù)組new int[]{R.id.ivIcon,R.id.tvName,R.id.tvPhone}//控件標識數(shù)組);//給列表控件設置適配器lvContact.setAdapter(adapter);}//定義一個gercontacts方法(聯(lián)系人列表)private List<HashMap<String, Object>> getContacts() {//聲明聯(lián)系人列表List<HashMap<String,Object>> contacts=new ArrayList<>();//聲明聯(lián)系人HashMap<String,Object> contact=null;//創(chuàng)建第一個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img1);contact.put("name","張三");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第二個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img2);contact.put("name","李四");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第三個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img3);contact.put("name","王五");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第四個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img4);contact.put("name","小米");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第五個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img5);contact.put("name","撒旦");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第六個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img6);contact.put("name","史蒂芬");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//創(chuàng)建第七個聯(lián)系人contact=new HashMap<>();contact.put("icon",R.drawable.img7);contact.put("name","seven");contact.put("phone","18283792232");//將聯(lián)系人添加到聯(lián)系人列表contacts.add(contact);//返回聯(lián)系人列表return contacts;}
}
運行效果
總結
以上是生活随笔為你收集整理的补17的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。