android同学录项目实现增删改查(tablet模型展示)

该项目是大二上学期时的android实训项目,要求如下:
android同学录项目开发
1)同学录基本要素,人的基本信息:,人物照片,姓名,性别,联系电话,住址,qq,email。
2)可以通过同学录直接拨打电话和发短信。
3)关键的照片显示。实时的拍照,可以新生成一个同学录的记录,然后填写相关信息。

一、项目展示

二、Android功能代码

bean层PersonInfo.java

package com.example.classmatesmemories_xxd_35_20191213.bean;

public class PersonInfo {
    private long id_xxd;
    private String name_xxd;
    private String gender_xxd;
    private String address_xxd;
    private String phone_xxd;
    private String QQ_xxd;
    private String email_xxd;

    public PersonInfo(Long id_xxd,String name_xxd, String gender_xxd, String address_xxd, String phone_xxd, String QQ_xxd, String email_xxd) {

        this.id_xxd = id_xxd;
        this.name_xxd = name_xxd;
        this.gender_xxd = gender_xxd;
        this.address_xxd = address_xxd;
        this.phone_xxd = phone_xxd;
        this.QQ_xxd = QQ_xxd;
        this.email_xxd = email_xxd;
    }

    public PersonInfo(String name_xxd, String gender_xxd, String address_xxd, String phone_xxd, String QQ_xxd, String email_xxd) {
        this.name_xxd = name_xxd;
        this.gender_xxd = gender_xxd;
        this.address_xxd = address_xxd;
        this.phone_xxd = phone_xxd;
        this.QQ_xxd = QQ_xxd;
        this.email_xxd = email_xxd;
    }




    public long getId_xxd() {
        return id_xxd;
    }

    public void setId_xxd(long id_xxd) {
        this.id_xxd = id_xxd;
    }

    public String getName_xxd() {
        return name_xxd;
    }

    public void setName_xxd(String name_xxd) {
        this.name_xxd = name_xxd;
    }

    public String getGender_xxd() {
        return gender_xxd;
    }

    public void setGender_xxd(String gender_xxd) {
        this.gender_xxd = gender_xxd;
    }

    public String getAddress_xxd() {
        return address_xxd;
    }

    public void setAddress_xxd(String address_xxd) {
        this.address_xxd = address_xxd;
    }

    public String getPhone_xxd() {
        return phone_xxd;
    }

    public void setPhone_xxd(String phone_xxd) {
        this.phone_xxd = phone_xxd;
    }

    public String getQQ_xxd() {
        return QQ_xxd;
    }

    public void setQQ_xxd(String QQ_xxd) {
        this.QQ_xxd = QQ_xxd;
    }

    public String getEmail_xxd() {
        return email_xxd;
    }

    public void setEmail_xxd(String email_xxd) {
        this.email_xxd = email_xxd;
    }

    public String toString(){return "[序号: " + id_xxd + ", 姓名: " + name_xxd + ", 性别: " + gender_xxd + ", qq: " + QQ_xxd + ", 手机号码: " + phone_xxd + ", 电子邮件: " + email_xxd + ", 地址: " + address_xxd + "]";}
}

dao层PersonDao.java

package com.example.classmatesmemories_xxd_35_20191213.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.example.classmatesmemories_xxd_35_20191213.bean.PersonInfo;

public class PersonDao {
    private MyHelper helper;
    public PersonDao(Context context){
        helper = new MyHelper(context);
    }

    public int delete(long id) {
        SQLiteDatabase db = helper.getWritableDatabase();
        // 按条件删除指定表中的数据, 返回受影响的行数
        int count = db.delete("T_pople_xxd", "id_xxd=?", new String[] { id + "" });
        db.close();
        return count;
    }
    public int update(PersonInfo p){
        SQLiteDatabase db = helper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name_xxd",p.getName_xxd());
        values.put("gender_xxd",p.getGender_xxd());
        values.put("phone_xxd",p.getPhone_xxd());
        values.put("address_xxd",p.getAddress_xxd());
        values.put("qq_xxd",p.getQQ_xxd());
        values.put("email_xxd",p.getEmail_xxd());
        int count = db.update("T_pople_xxd",values,"id_xxd=?",new String[]{p.getId_xxd()+""});
        db.close();
        return count;
    }


}

dao层MyHelper.java

package com.example.classmatesmemories_xxd_35_20191213.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;



public class MyHelper extends SQLiteOpenHelper {
    public MyHelper( Context context) {
        super(context,"DB_memories_xxd.db",null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE T_pople_xxd(id_xxd INTEGER PRIMARY KEY AUTOINCREMENT,name_xxd VARCHAR(20),gender_xxd VARCHAR(6),phone_xxd VARCHAR(20),address_xxd VARCHAR(200),qq_xxd VARCHAR(20),email_xxd VARCHAR(100))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

MainActivity.java

package com.example.classmatesmemories_xxd_35_20191213;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button open;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        open = findViewById(R.id.btn_open);
        open.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(MainActivity.this,Main2Activity.class);
                startActivity(it);
            }
        });
    }
}

Main2Activity.java

package com.example.classmatesmemories_xxd_35_20191213;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {
    TextView exit,modify,add,glance;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        exit = findViewById(R.id.tv_exit);
        modify = findViewById(R.id.tv_modify);
        add = findViewById(R.id.tv_add);
        glance = findViewById(R.id.tv_query);

        exit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(Main2Activity.this,MainActivity.class);
                startActivity(it);
            }
        });
        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(Main2Activity.this,add.class);
                startActivity(it);
            }
        });
        modify.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(Main2Activity.this,Modify.class);
                startActivity(it);
            }
        });
        glance.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            Intent it = new Intent(Main2Activity.this,queryAll.class);
            startActivity(it);
            }
        });
    }
}

add.java

package com.example.classmatesmemories_xxd_35_20191213;

import android.Manifest;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import com.example.classmatesmemories_xxd_35_20191213.dao.MyHelper;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class add extends AppCompatActivity implements View.OnClickListener{
    EditText t_name,t_address,t_phone,t_qq,t_email,t_gender;
    Button submit;
    ImageView photo_tx,exit;
    Bitmap image;



    //打开相册的请求码
    private static final int MY_ADD_CASE_CALL_PHONE2 = 7;
    private AlertDialog.Builder builder;
    private AlertDialog dialog;
    private LayoutInflater inflater;

    private View layout;
    private TextView takePhotoTV;
    private TextView choosePhontoTV;
    private TextView cancelTV;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);

        photo_tx = findViewById(R.id.img_photo);
        t_name = findViewById(R.id.et_name);
        t_address = findViewById(R.id.et_address);
        t_phone = findViewById(R.id.et_call);
        t_qq = findViewById(R.id.et_qq);
        t_gender = findViewById(R.id.et_gender);
        t_email = findViewById(R.id.et_email);
        submit = findViewById(R.id.btn_submit);
        exit = findViewById(R.id.img_back);

        final MyHelper myHelper = new MyHelper(this);
        exit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(add.this,Main2Activity.class);
                startActivity(it);
            }
        });
        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SQLiteDatabase db;
                ContentValues values;
                db = myHelper.getWritableDatabase();
                values = new ContentValues();
                values.put("name_xxd",t_name.getText().toString().trim());
                values.put("gender_xxd",t_gender.getText().toString().trim());
                values.put("phone_xxd",t_phone.getText().toString().trim());
                values.put("address_xxd",t_address.getText().toString().trim());
                values.put("qq_xxd",t_qq.getText().toString().trim());
                values.put("email_xxd",t_email.getText().toString().trim());
                db.insert("T_pople_xxd",null,values);
                Toast.makeText(add.this,"填写完成",Toast.LENGTH_LONG).show();
                db.close();
            }
        });
    }

    public void updatephoto(View view) {
        viewInit();
    }

    private void viewInit() {
        builder = new AlertDialog.Builder(this);//创建对话框
        inflater =getLayoutInflater();
        layout = inflater.inflate(R.layout.choicephoto,null);//获取自定义布局
        builder.setView(layout);//设置对话框的布局
        dialog = builder.create();//生成最终的对话框
        dialog.show();//显示对话框

        takePhotoTV = layout.findViewById(R.id.photograph);
        choosePhontoTV = layout.findViewById(R.id.photo);
        cancelTV = layout.findViewById(R.id.cancel);

        //设置监听
        takePhotoTV.setOnClickListener(this);
        choosePhontoTV.setOnClickListener(this);
        cancelTV.setOnClickListener(this);

    }
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.photograph:

                        //动态权限:点击相机获取相机权限
                        DongTaiShare();

                        getPicFromCamera();

                break;
        case R.id.photo:
            //点击了相册
            //6.0之后动态申请权限 SD卡写入权限
        if (ContextCompat.checkSelfPermission(add.this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(add.this,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    MY_ADD_CASE_CALL_PHONE2);

        } else {
            //打开相册
            getPicFromAlbm();
        }
        dialog.dismiss();
        break;
    case R.id.cancel:
        dialog.dismiss();//关闭对话框
        break;
    default:break;
    }
}

    private void getPicFromAlbm() {
        Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
        photoPickerIntent.setType("image/*");
        startActivityForResult(photoPickerIntent, 2);

    }

    private void getPicFromCamera() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        startActivityForResult(intent, 1);
    }

    private void DongTaiShare() {
        if (Build.VERSION.SDK_INT >= 23) {
            String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS, Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS, Manifest.permission.CAMERA};
            ActivityCompat.requestPermissions(this, mPermissionList, 123);
        }
    }

    protected void onActivityResult(int requestCode,int resultCode,Intent intent){
        switch (requestCode){
            //调用相机后返回
            case 1:
                if (resultCode == RESULT_OK){
                    final Bitmap photo = intent.getParcelableExtra("data");
                    photo_tx.setImageBitmap(photo);
                }
                break;
            case 2:
                if(resultCode ==RESULT_OK){
                    Uri uri = intent.getData();
                    cropPhone(uri);//裁剪图片
                }
                break;
            case 3:
                Bundle bundle = intent.getExtras();
                if(bundle != null){
                    //在这里获得了剪裁后的Bitmap对象,可以用于上传
                    Bitmap image = bundle.getParcelable("data");
                    //设置到ImageView上
                    photo_tx.setImageBitmap(image);
                    //也可以进行一些保存、压缩等操作后上传
                    String path = saveImage("userHeader",image);
                    File file = new File(path);

//                    这里可以做上传文件的操作
                }
                break;
        }
    }
//裁剪图片
    private void cropPhone(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
        intent.setDataAndType(uri,"image/*");
        intent.putExtra("crop","true");
        intent.putExtra("aspectX",1);
        intent.putExtra("aspectY",1);
        intent.putExtra("outputX",300);
        intent.putExtra("outputY",300);
        intent.putExtra("return-data",true);
        startActivityForResult(intent,3);
    }

    //保存图片到本地
    public String saveImage(String name, Bitmap bmp){
        File appDir = new File(Environment.getExternalStorageDirectory().getPath());
        if(!appDir.exists()){
            appDir.mkdir();
        }
        String fileName = name + ".jpg";
        File file= new File(appDir,fileName);
        try {
            FileOutputStream fos = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.JPEG,100,fos);
            fos.flush();
            fos.close();
            return  file.getAbsolutePath();
        }catch (IOException e){
            e.printStackTrace();
        }
        return null;
    }

}

Modify.java

package com.example.classmatesmemories_xxd_35_20191213;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.classmatesmemories_xxd_35_20191213.bean.PersonInfo;
import com.example.classmatesmemories_xxd_35_20191213.dao.MyHelper;
import com.example.classmatesmemories_xxd_35_20191213.dao.PersonDao;

import java.util.ArrayList;
import java.util.List;


public class Modify extends AppCompatActivity {
    private int[] icons = {R.drawable.tx1};

    List<PersonInfo> list;

    private ListView listView;

    private MyHelper myHelper;

    private PersonDao dao;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_modify);
        ImageView back = findViewById(R.id.img_back);
        dao = new PersonDao(Modify.this);



        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(Modify.this,Main2Activity.class);
                startActivity(it);
            }
        });
        int j =test(Modify.this);

        if(j == 1){
            listView = (ListView) findViewById(R.id.lv_modify);

            MyBaseAdapter adapter = new MyBaseAdapter();

            listView.setAdapter(adapter);
        }
    }

    private int test(Context context) {
        list = new ArrayList<PersonInfo>();
        int i=0;
        int j=1;
        myHelper = new MyHelper(context);
        SQLiteDatabase db;
        db = myHelper.getReadableDatabase();
        Cursor cursor = db.query("T_pople_xxd",null,null,null,null,null,null);
        if (cursor.getCount()==0){
            Toast.makeText(this,"No data",Toast.LENGTH_SHORT).show();
            j = 0;
        }else{
            cursor.moveToFirst();
            while (cursor.moveToNext()){
                long id =cursor.getLong(cursor.getColumnIndex("id_xxd"));

                String name = cursor.getString(1);
                String gender = cursor.getString(2);
                String phone =cursor.getString(3);
                String address =cursor.getString(4);
                String qq =cursor.getString(5);
                String email=cursor.getString(6);
                list.add(new PersonInfo(id,name,gender,phone,address,qq,email));
            }
            cursor.close();
            db.close();
        }
        return j;
    }

    public class MyBaseAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            View view =convertView != null ? convertView : View.inflate(getApplicationContext(),R.layout.item_modify,null);
            final PersonInfo p = list.get(position);
            TextView id = view.findViewById(R.id.tv_numberid);
            id.setText(p.getId_xxd()+"");

            TextView name =view.findViewById(R.id.vet_name);
            name.setText(p.getName_xxd());

            final EditText gender = view.findViewById(R.id.vet_gender);
            gender.setText(p.getGender_xxd());

            final EditText phone = view.findViewById(R.id.vet_phone);
            phone.setText(p.getAddress_xxd());

            final EditText qq = view.findViewById(R.id.vet_qq);
            qq.setText(p.getQQ_xxd());

            final EditText email = view.findViewById(R.id.vet_email);
            email.setText(p.getEmail_xxd());

            final EditText address = view.findViewById(R.id.vet_address);
            address.setText(p.getPhone_xxd());

            Button delete = view.findViewById(R.id.btn_delete);
            delete.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    //删除数据之前首先弹出一个对话框
                    DialogInterface.OnClickListener listener =
                            new DialogInterface.
                                    OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    list.remove(p);          // 从集合中删除
                                    dao.delete(p.getId_xxd()); // 从数据库中删除
                                    notifyDataSetChanged();// 刷新界面
                                }
                            };
                    AlertDialog.Builder builder = new AlertDialog.Builder(Modify.this); // 创建对话框
                    builder.setTitle("确定要删除吗?");                    // 设置标题
                    // 设置确定按钮的文本以及监听器
                    builder.setPositiveButton("确定", listener);
                    builder.setNegativeButton("取消", null);         // 设置取消按钮
                    builder.show(); // 显示对话框
                }
            });

            Button update = view.findViewById(R.id.btn_update);
            update.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    //删除数据之前首先弹出一个对话框
                    DialogInterface.OnClickListener listener =
                            new DialogInterface.
                                    OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    list.get(position).setGender_xxd(gender.getText().toString().trim());
                                    list.get(position).setAddress_xxd(address.getText().toString().trim());
                                    list.get(position).setEmail_xxd(email.getText().toString().trim());
                                    list.get(position).setPhone_xxd(phone.getText().toString().trim());
                                    list.get(position).setQQ_xxd(qq.getText().toString().trim());
                                    dao.update(list.get(position));


                                }
                            };
                    AlertDialog.Builder builder = new AlertDialog.Builder(Modify.this); // 创建对话框
                    builder.setTitle("确定要修改吗?");                    // 设置标题
                    // 设置确定按钮的文本以及监听器
                    builder.setPositiveButton("确定", listener);
                    builder.setNegativeButton("取消", null);         // 设置取消按钮
                    builder.show(); // 显示对话框
                }
            });
            return view;
        }
    }

}

Query.java

package com.example.classmatesmemories_xxd_35_20191213;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.classmatesmemories_xxd_35_20191213.bean.PersonInfo;
import com.example.classmatesmemories_xxd_35_20191213.dao.MyHelper;

import java.util.ArrayList;
import java.util.List;

public class queryAll extends AppCompatActivity {
    private int[] icons = {R.drawable.tx1,R.drawable.message,R.drawable.call};

    List<PersonInfo> list;

    private ListView listView;

    private MyHelper myHelper;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_query_all);
        ImageView back = findViewById(R.id.img_back);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent it = new Intent(queryAll.this,Main2Activity.class);
                startActivity(it);
            }
        });
       int j =test(queryAll.this);

        if(j == 1){
            listView = (ListView) findViewById(R.id.lv);

          MyBaseAdapter adapter = new MyBaseAdapter();

          listView.setAdapter(adapter);
        }
    }

   private int test(Context context){
        list = new ArrayList<PersonInfo>();
        int i=0;
        int j=1;
       myHelper = new MyHelper(context);
       SQLiteDatabase db;
       db = myHelper.getReadableDatabase();
       Cursor cursor = db.query("T_pople_xxd",null,null,null,null,null,null);
       if (cursor.getCount() == 0){
        Toast.makeText(this,"no data",Toast.LENGTH_LONG).show();
        j=0;
       }else{
           cursor.moveToFirst();
           while (cursor.moveToNext()){

            long id =cursor.getLong(cursor.getColumnIndex("id_xxd"));
            String name = cursor.getString(1);
            String gender = cursor.getString(2);
            String phone =cursor.getString(3);
            String address =cursor.getString(4);
            String qq =cursor.getString(5);
            String email=cursor.getString(6);
               list.add(new PersonInfo(id,name,gender,phone,address,qq,email));
           }
           cursor.close();
           db.close();
       }
       return  j;
   }
    public class MyBaseAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {

           View view =convertView != null ? convertView : View.inflate(getApplicationContext(),R.layout.item_temper,null);

            TextView id = view.findViewById(R.id.tv_numberid);
            id.setText(list.get(position).getId_xxd()+"");

            TextView name = view.findViewById(R.id.vet_name);
            name.setText(list.get(position).getName_xxd());

            TextView gender =view.findViewById(R.id.vet_gender);
            gender.setText(list.get(position).getGender_xxd());

             TextView number =view.findViewById(R.id.vet_phone);
            number.setText(list.get(position).getPhone_xxd());

            TextView qq = view.findViewById(R.id.vet_qq);
            qq.setText(list.get(position).getQQ_xxd());

            TextView email = view.findViewById(R.id.vet_email);
            email.setText(list.get(position).getEmail_xxd());

            TextView address = view.findViewById(R.id.vet_address);
            address.setText(list.get(position).getAddress_xxd());

            ImageView call = view.findViewById(R.id.img_call);
            call.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                            String tel = list.get(position).getAddress_xxd(); //获取电话号码
                            Intent intent = new Intent(Intent.ACTION_DIAL);//设置动作为打电话
                            intent.setData(Uri.parse("tel:" + tel));//设置打电话的号码
                            startActivity(intent);
                }
            });
            ImageView message = view.findViewById(R.id.img_message);
            message.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String tels = list.get(position).getAddress_xxd();             //获取电话
                    Intent intent = new Intent();                        //创建 Intent 实例
                    intent.setAction(Intent.ACTION_SENDTO);             //设置动作为发送短信
                    intent.setData(Uri.parse("smsto:"+tels));           //设置发送的号码
                    startActivity(intent);                               //启动 Activity
                }
            });

            return view;
        }
    }

}

github项目完整代码:https://github.com/xxd6772123/classmatesmemories

三、总结

  android同学录实训项目实现了增删改查的功能,UI布局较为简单,功能实现实训要求。在这次android实训中,我受益匪浅。记得刚看到这道实训题时心中还是犹豫不决地认为这次项目实训会不会很难上手虽然在之前的课堂上老师已经把一些基本功能的使用教授给我们了,但感觉要自己独立完成一个项目心中还是有些压力,大概是之前只会看老师做而自己很少动手的缘故了,不过等到自己真正的开始做起项目来,会感到越做越有动力,甚至想要快点把这个项目给弄完,之前的犹豫和害怕也不再存在,一心只想快点看到自己做出来的成功,虽然在做的过程遇到了很多瓶颈但也通过了查阅资料得到了解决,在这次android实训中,自己最后完成的成果虽然没有达到十全十美,但也符合自己对本学期该门课程的要求,也希望在之后的作业中更加严格的要求自己。


如果你觉得我这篇文章不错或者帮助到了你可以在本篇文章中给我点一个赞,您的一个小小鼓励将会是我在敲码路上的大大动力!!!!

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值