日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android手机通讯录制作

發布時間:2023/12/14 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android手机通讯录制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android手機通訊錄制作

  • 要求
    • 樣圖展示
    • 代碼
      • 1.創建數據庫
      • 2.主界面
        • MainActivity
        • CustomAdapter.java
        • activity_main.xml
      • 3.添加聯系人
        • AddContacts.java(添加界面)
        • addactivity.xml

要求

設計一個基于Android的手機通訊錄,此通訊錄包括添加、搜索、修改、刪除聯系人的功能。

  • 添加、編輯、刪除功能
    點擊通訊錄主界面選項菜單中的“添加聯系人”菜單項,進入添加聯系人界面,輸入聯系人的基本信息,包括姓名、手機號碼、家庭地址、單位名稱、Email、QQ號這些信息,姓名和手機號碼必須不為空,且唯一。點擊通訊錄中一個已存在的聯系人,進入編輯界面,可修改聯系人的資料或進行刪除操作,完成后返回到主界面。
  • 查找聯系人
    點擊通訊錄選項菜單中的“查找聯系人”菜單項,進入搜索界面,能通過姓名、手機號碼、單位名稱等信息查找聯系人,將所有符合查詢條件的聯系人通過列表控件顯示。
  • 快捷菜單功能
    在聯系人主界面上長按一個已存在的聯系人,能彈出一個快捷菜單,菜單項包括撥打電話、發送短信、修改聯系人、刪除聯系人。點擊菜單項能跳轉到相應的界面。
  • 樣圖展示

    代碼

    1.創建數據庫

    /*** 創建一個數據庫類繼承* 通過創建子類MyDatabaseHelper繼承SQLiteOpenHelper類,實現它的一些方法來對數據庫進行操作。* 變量用常量表示規范,常量一般大寫*/ public class MyDatabaseHelper extends SQLiteOpenHelper {private Context context;private static final String DATABASE_NAME = "phone_contacts.db";//定義一個常量名命這個數據庫為phone db是一個擴展;private static final int DATABASE_VERSION = 1;//定義一個數據庫版本,是一個整數類型;private static final String TABLE_NAME = "contact";//定義一個表名;//需要定義標題private static final String CONTACT_ID = "phone_id";//序列private static final String CONTACT_NAME = "phone_name";//名字private static final String CONTACT_PHONE = "phone_phone";//電話private static final String CONTACT_ADDRESS = "phone_address";//地址private static final String CONTACT_UNIT = "phone_unit";//單位名稱private static final String CONTACT_EMAIL = "phone_email";//Emailprivate static final String CONTACT_QQ = "phone_qq";//QQ號碼/*構造函數要傳上下文和名字以及工廠還有一個版本,*/public MyDatabaseHelper(@Nullable Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);this.context = context;}/*第一次創建數據庫的時候使用回調方法數據出第一次創建的時候才會被調用,其他時候不會再調用了,只調用一次創建contact表id,name,phone,address,unit,,email,qq;*/@Overridepublic void onCreate(SQLiteDatabase db) {//創建數據表String query =" CREATE TABLE " + TABLE_NAME +" ( " + CONTACT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +CONTACT_NAME + " TEXT, " +CONTACT_PHONE + " TEXT, " +CONTACT_ADDRESS + " TEXT, " +CONTACT_UNIT + " TEXT, " +CONTACT_EMAIL + " TEXT, " +CONTACT_QQ + " TEXT); ";//執行SQLdb.execSQL(query);}## 如何插入一段漂亮的代碼片去[博客設置](https://mp.csdn.net/console/configBlog)頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 `代碼片`. ```javascript // An highlighted block var foo = 'bar';

    2.主界面

    MainActivity

    public class MainActivity extends AppCompatActivity {private SearchView searchView; /* 創建一個RecoverySystem對象和浮動操作按鈕*/RecyclerView recyclerView;FloatingActionButton add_button;//初始化我的數據庫類MyDatabaseHelper myDB = new MyDatabaseHelper(MainActivity.this);//創建6個不同的數組列表一邊這些數組列表將包含字符串,因此第一個是//phone_id、phone_name、phone_phone、phone_address、phone_unit、phone_email、phone_qqArrayList<String> phone_id,phone_name,phone_phone,phone_address,phone_unit,phone_email,phone_qq;CustomAdapter customAdapter;CardView cardView; @Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data){super.onActivityResult(requestCode,resultCode,data);if (requestCode == 1){recreate();}}public void displayData(){Cursor cursor = myDB.readAllData();if (cursor.getCount() == 0){Toast.makeText(this, "沒有數據可以顯示", Toast.LENGTH_SHORT).show();}else{while (cursor.moveToNext()){phone_id.add(cursor.getString(0));phone_name.add(cursor.getString(1));phone_phone.add(cursor.getString(2));phone_address.add(cursor.getString(3));phone_unit.add(cursor.getString(4));phone_email.add(cursor.getString(5));phone_qq.add(cursor.getString(6));}}}}

    CustomAdapter.java

    創建適配器界面用于顯示主頁面數據

    public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {private Context context;Activity activity;EditText pt_name1, pt_phone1, pt_address1, pt_unit1, pt_email1, pt_qq1;private ArrayList phone_id, phone_name, phone_phone, phone_address,phone_unit, phone_email, phone_qq;CustomAdapter(Activity activity,Context context,ArrayList phone_id,ArrayList phone_name,ArrayList phone_phone,ArrayList phone_address,ArrayList phone_unit,ArrayList phone_email,ArrayList phone_qq) {this.activity = activity;this.context = context;this.phone_id = phone_id;this.phone_name = phone_name;this.phone_phone = phone_phone;this.phone_address = phone_address;this.phone_unit = phone_unit;this.phone_email = phone_email;this.phone_qq = phone_qq;}@Overridepublic int getItemCount() {return phone_id.size();}public class MyViewHolder extends RecyclerView.ViewHolder {TextView phone_id_txt, phone_name_txt, phone_phone_txt, phone_address_txt;LinearLayout mainLayout;public MyViewHolder(@NonNull View itemView) {super(itemView);phone_id_txt = itemView.findViewById(R.id.phone_id_txt);phone_name_txt = itemView.findViewById(R.id.phone_name_txt);phone_phone_txt = itemView.findViewById(R.id.phone_phone_txt);phone_address_txt = itemView.findViewById(R.id.phone_address_txt);pt_name1 = itemView.findViewById(R.id.pt_name1);pt_phone1 = itemView.findViewById(R.id.pt_phone1);pt_address1 = itemView.findViewById(R.id.pt_address1);pt_unit1 = itemView.findViewById(R.id.pt_unit1);pt_email1 = itemView.findViewById(R.id.pt_email1);pt_qq1 = itemView.findViewById(R.id.pt_qq1);mainLayout = itemView.findViewById(R.id.mainLayout);}}

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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"tools:context=".MainActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerview"android:layout_width="414dp"android:layout_height="674dp"android:layout_marginTop="52dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.666"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><com.google.android.material.floatingactionbutton.FloatingActionButtonandroid:id="@+id/add_button"android:layout_width="57dp"android:layout_height="55dp"android:layout_marginEnd="44dp"android:layout_marginBottom="84dp"android:clickable="true"android:focusable="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:srcCompat="@drawable/ic_baseline_add_24" /><SearchViewandroid:id="@+id/searchview"android:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="2dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

    3.添加聯系人

    //創建一個添加方法addPhone()//將創建SQLite數據庫對象,這樣只需要名命該數據庫,使用一個關鍵字,指向SQLite開放式幫助類//helper類,獲取可寫入的數據庫public void addPhone(String name, String phone, String address, String unit, String email, String qq) {SQLiteDatabase db = this.getWritableDatabase();ContentValues cv = new ContentValues();cv.put(CONTACT_NAME, name);cv.put(CONTACT_PHONE, phone);cv.put(CONTACT_ADDRESS, address);cv.put(CONTACT_UNIT, unit);cv.put(CONTACT_EMAIL, email);cv.put(CONTACT_QQ, qq);long result = db.insert(TABLE_NAME, null, cv);if (result == -1) {Toast.makeText(context, "保存失敗", Toast.LENGTH_SHORT).show();} else {Toast.makeText(context, "保存成功!", Toast.LENGTH_SHORT).show();}}

    AddContacts.java(添加界面)

    public class AddContacts extends AppCompatActivity {private EditText et_name,et_phone,et_address,et_unit,et_email,et_qq;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_add_contacts);init();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {MyDatabaseHelper myDB = new MyDatabaseHelper(AddContacts.this);myDB.addPhone(et_name.getText().toString().trim(),et_phone.getText().toString().trim(),et_address.getText().toString().trim(),et_unit.getText().toString().trim(),et_email.getText().toString().trim(),et_qq.getText().toString().trim());}});}private void init(){et_name = findViewById(R.id.pt_name);et_phone = findViewById(R.id.pt_phone);et_address = findViewById(R.id.pt_address);et_unit = findViewById(R.id.pt_unit);et_email = findViewById(R.id.pt_email);et_qq = findViewById(R.id.pt_qq);button = findViewById(R.id.button);} }

    addactivity.xml

    <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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"tools:context=".AddContacts"><EditTextandroid:id="@+id/pt_name"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="150dp"android:ems="10"android:hint="請輸入姓名"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.683"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><EditTextandroid:id="@+id/pt_phone"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="30dp"android:ems="10"android:inputType="textPersonName"android:hint="請輸入電話號碼"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.689"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/pt_name" /><EditTextandroid:id="@+id/pt_address"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="30dp"android:ems="10"android:hint="請輸入家庭地址"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.689"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/pt_phone" /><EditTextandroid:id="@+id/pt_unit"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="30dp"android:ems="10"android:hint="請輸入單位名稱"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.683"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/pt_address" /><EditTextandroid:id="@+id/pt_email"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="30dp"android:ems="10"android:hint="請輸入Email"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.683"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/pt_unit" /><EditTextandroid:id="@+id/pt_qq"android:layout_width="250dp"android:layout_height="40dp"android:layout_marginTop="30dp"android:ems="10"android:hint="請輸入QQ號碼"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.683"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/pt_email" /><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginStart="16dp"android:layout_marginTop="150dp"android:layout_marginEnd="15dp"android:gravity="center"android:text="@string/tv_name"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_name"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="40dp"android:gravity="center"android:layout_marginStart="16dp"android:layout_marginTop="30dp"android:layout_marginEnd="15dp"android:text="@string/tv_phone"android:textAlignment="center"android:textDirection="locale"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_phone"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView" /><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginStart="16dp"android:gravity="center"android:layout_marginTop="30dp"android:layout_marginEnd="15dp"android:text="@string/tv_address"android:textAlignment="center"android:textDirection="locale"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_address"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView2" /><TextViewandroid:id="@+id/textView4"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginStart="16dp"android:layout_marginTop="30dp"android:gravity="center"android:layout_marginEnd="15dp"android:text="@string/tv_unit"android:textAlignment="center"android:textDirection="locale"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_unit"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView3" /><TextViewandroid:id="@+id/textView5"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginStart="16dp"android:layout_marginTop="30dp"android:layout_marginEnd="15dp"android:gravity="center"android:text="@string/tv_email"android:textAlignment="center"android:textDirection="locale"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_email"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView4" /><TextViewandroid:id="@+id/textView6"android:layout_width="wrap_content"android:layout_height="40dp"android:layout_marginStart="16dp"android:layout_marginTop="30dp"android:layout_marginEnd="15dp"android:gravity="center"android:text="@string/tv_QQ"android:textAlignment="center"android:textDirection="locale"android:textStyle="bold"app:layout_constraintEnd_toStartOf="@+id/pt_qq"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView5" /><Buttonandroid:id="@+id/button"android:layout_width="400dp"android:layout_height="wrap_content"android:layout_marginBottom="56dp"android:text="@string/btn_button"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.454"app:layout_constraintStart_toStartOf="parent" /><ImageViewandroid:id="@+id/imageView3"android:layout_width="360dp"android:layout_height="142dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.509"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/qq1" /> </androidx.constraintlayout.widget.ConstraintLayout>

    總結

    以上是生活随笔為你收集整理的Android手机通讯录制作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。