1. 通讯录功能实现
⚪页面布局代码如下:
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">
<!-- 打电话-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="35dp"
android:background="#000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="通讯录"
android:textColor="#fff"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvadd"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_marginTop="6dp"
android:text="添加"
android:textColor="#fff"
android:textSize="18sp"/>
</RelativeLayout>
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:dividerHeight="2dp"
android:id="@+id/lv"/>
</LinearLayout>
activity_add_layout.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">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="35dp"
android:background="#000">
<ImageView
android:layout_width="30dp"
android:layout_height="25dp"
android:layout_marginTop="5dp"
android:id="@+id/imgreturn"
android:layout_marginLeft="10dp"
android:src="@mipmap/row_left"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/imgreturn"
android:text="返回"
android:textSize="20sp"
android:textColor="#fff"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edtName"
android:hint="请输入姓名"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edtTel"
android:hint="请输入电话号码"/>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_margin="10dp">
<ImageView
android:layout_width="40dp"
android:layout_height="120dp"
android:src="@mipmap/row_left"
android:id="@+id/imgleft"/>
<ImageView
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/img"
android:src="@mipmap/liubei"/>
<ImageView
android:layout_width="40dp"
android:layout_height="120dp"
android:src="@mipmap/row_right"
android:layout_alignParentRight="true"
android:id="@+id/imgright"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:id="@+id/btnreset"
android:text="重置"
android:textSize="20sp"/>
<Button
android:layout_width="80dp"
android:layout_height="wrap_content"
android:id="@+id/btnok"
android:text="添加"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>
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="horizontal">
<ImageView
android:layout_width="60dp"
android:layout_height="80dp"
android:id="@+id/lxrimg"
android:src="@mipmap/liubei"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lxrname"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:text="刘备"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lxrtel"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:text="12345678"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>
⚪Java代码如下:
Main_Activity.java(主界面功能实现代码)
package com.example.ceshi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.collection.ArraySet;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity {
private ListView lv;
private TextView add;
private SimpleAdapter adapter = null;
private ArrayList<Person> persons = new ArrayList<Person>();
private boolean flag = false;
private ArrayList<HashMap<String, Object>> lxrList = new ArrayList<HashMap<String, Object>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
Intent intent = this.getIntent();
// 从add_layout的intent附加信息中取出添加的联系人信息
persons = (ArrayList<Person>) intent.getSerializableExtra("persons");
//标记已经通过add_layout界面添加了联系人信息,即persons不为空指针
flag = intent.getBooleanExtra("flag", false);
if (flag) {
for (int i = 0; i < persons.size(); i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("imgid", persons.get(i).getImgid());
map.put("name", persons.get(i).getName());
map.put("tel", persons.get(i).getTel());
lxrList.add(map);
}
String[] from = {
"imgid", "name", "tel"};
int[] to = {
R.id.lxrimg, R.id.lxrname, R.id.lxrtel};
adapter = new SimpleAdapter(this, lxrList, R.layout.item, from, to);
lv.setAdapter(adapter);
}
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent itdail = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+persons.get(position).getTel()) );
MainActivity.this.startActivity(itdail);
}
});
// 添加监听事件
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, add_layout.class);
startActivity(intent);
}
});
}
void initView() {
lv = this.findViewById(R.id.lv);
add = this.findViewById(R.id.tvadd);
}
}
add_layout.java(添加联系人功能代码)
package com.example.ceshi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class add_layout extends AppCompatActivity {
EditText edtName, edtTel;
ImageView imgReturn, imgLeft, imgRight, img;
int imgId[] = {
R.mipmap.liubei,R.mipmap.caocao,R.mipmap