注:1.安卓作业分享,源码来自《Android移动开发项目式教程(第2版)》
2.分享给期末忙着不想敲作业的同学
3.如果有帮助,记得给个攒哦

1. AndroidManifest.xml

<!-- AndroidManifest.xml -->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.zhy.myapplication"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><providerandroid:authorities="con.zhy.mycontacts.mycontactscontentprovider"android:name=".Actions.MyContactsContentProvider"android:exported="true"/><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- 增加号码录入Activity--><activity android:name=".Actions.AddContactsActivity"></activity><!-- 修改号码录入Activity--><activity android:name=".Actions.UpdateContactsActivity"></activity><!-- 查询号码录入Activity--><activity android:name=".Actions.ContactsMessageActivity"></activity></application><!-- 添加导出手机电话本所需要的权限--><uses-permission android:name="android.permission.READ_CONTACTS"/><uses-permission android:name="android.permission.WRITE_CONTACTS"/></manifest>

2.MainActivity.java

package com.zhy.myapplication;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;import com.zhy.myapplication.Actions.AddContactsActivity;
import com.zhy.myapplication.Actions.ContactsMessageActivity;
import com.zhy.myapplication.Actions.UpdateContactsActivity;
import com.zhy.myapplication.Contact.ContactsTable;
import com.zhy.myapplication.Contact.User;public class MainActivity extends AppCompatActivity {private ListView listView;//显示结果列表private BaseAdapter listViewAdapter;//ListView 列表适配器private User users[];//通讯录用户private int selecteItem = 0; //当前选择的数据项@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);setTitle("通讯录");listView = (ListView)findViewById(R.id.listView);//绑定listViewloadContacts();//加载数据}/*** 加载联系人列表*/private void loadContacts(){//获取所有通讯录联系人ContactsTable ct = new ContactsTable(this);users = ct.getAllUser();//为listView列表创建适配器listViewAdapter = new BaseAdapter() {@SuppressLint("SetTextI18n")@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {TextView textView = new TextView(MainActivity.this);textView.setTextSize(22);convertView = textView;}String mobile = users[position].getMobile() == null ? "" : users[position].getMobile();((TextView) convertView).setText(users[position].getName() + "---" + mobile);if (position == selecteItem) {convertView.setBackgroundColor(Color.YELLOW);} else {convertView.setBackgroundColor(0);}return convertView;}@Overridepublic int getCount() {return users.length;}@Overridepublic Object getItem(int position) {return users[position];}@Overridepublic long getItemId(int position) {return position;}};//设置listVIew控件的适配器listView.setAdapter(listViewAdapter);listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {selecteItem = arg2; //记录单击列的位置listViewAdapter.notifyDataSetChanged();//刷新列表}});}/*** 创建菜单*/public boolean onCreateOptionsMenu(Menu menu){menu.add(Menu.NONE,1,Menu.NONE,"添加");menu.add(Menu.NONE,2,Menu.NONE,"编辑");menu.add(Menu.NONE,3,Menu.NONE,"查看信息");menu.add(Menu.NONE,4,Menu.NONE,"删除");menu.add(Menu.NONE,5,Menu.NONE,"查询");menu.add(Menu.NONE,6,Menu.NONE,"退出");return super.onCreateOptionsMenu(menu);}/*** 菜单事件*/public boolean onOptionsItemSelected(MenuItem item){String sHint;switch (item.getItemId()){case 1://添加Intent intent = new Intent(MainActivity.this, AddContactsActivity.class);startActivity(intent);break;case 2://编辑//根据数据库ID判断当前记录是否可以操作if(users[selecteItem].getId_DB() > 0){intent = new Intent(MainActivity.this, UpdateContactsActivity.class);intent.putExtra("user_ID",users[selecteItem].getId_DB());startActivity(intent);}else{sHint = "无结果记录,无法操作!";Toast.makeText(this,sHint,Toast.LENGTH_SHORT).show();}break;case 3://查看信息if(users[selecteItem].getId_DB() > 0){intent = new Intent(MainActivity.this, ContactsMessageActivity.class);intent.putExtra("user_ID",users[selecteItem].getId_DB());startActivity(intent);}else{sHint = "无结果,无法操作!";Toast.makeText(this,sHint,Toast.LENGTH_SHORT).show();}break;case 4://删除if(users[selecteItem].getId_DB() > 0){delete();}else{sHint="无结果记录,无法操作!";Toast.makeText(this,sHint,Toast.LENGTH_SHORT).show();}break;case 5://查询new FindDialog(this).show();break;case 6://退出finish();break;default:break;}return super.onOptionsItemSelected(item);}@Overrideprotected void onResume() {super.onResume();//重新加载数据ContactsTable ct = new ContactsTable(this);users = ct.getAllUser();//刷新数据显示列表listViewAdapter.notifyDataSetChanged();}/*** 查询*/public class FindDialog extends Dialog {public FindDialog(@NonNull Context context) {super(context);}protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.find);setTitle("联系人查询");Button find = (Button)findViewById(R.id.find);Button cancel = (Button)findViewById(R.id.cancel);find.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {EditText value = (EditText)findViewById(R.id.value);ContactsTable ct = new ContactsTable(MainActivity.this);users = ct.findUserByKey(value.getText().toString());System.out.println("输入框的值:" +value.getText().toString());for(int i=0; i< users.length; i++){System.out.println("姓名是"+users[i].getName()+",电话是" +users[i].getMobile());}listViewAdapter.notifyDataSetChanged();selecteItem = 0;dismiss();}});cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dismiss();}});}}/*** 删除联系人*/public void delete(){AlertDialog.Builder alert = new AlertDialog.Builder(this);alert.setTitle("系统信息");alert.setMessage("是否删除联系人?");alert.setPositiveButton("是", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int whichButton) {ContactsTable ct = new ContactsTable((MainActivity.this));//删除联系人信息if(ct.deleteByUser(users[selecteItem])){//重新获取数据users=ct.getAllUser();//刷新列表listViewAdapter.notifyDataSetChanged();selecteItem = 0;Toast.makeText(MainActivity.this,"删除成功!",Toast.LENGTH_SHORT).show();}else{Toast.makeText(MainActivity.this,"删除失败!",Toast.LENGTH_SHORT).show();}}});alert.setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});alert.show();}/* //导入到手机电话本public void importPhone(String name,String phone){//系统通讯录ContentProvider的URLUri phoneURL = ContactsContract.Data.CONTENT_URI;ContentValues values = new ContentValues();//首先向RAWContacts.CONTENT_URI执行一个控制插入,目的是获取系统返回的rawContactIdUri rawContactUri = this.getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI,values);insert(ContactsContract.RawContacts.CONTENT_URI,values);long rawContactId = ContentUris.parseId(rawContactUri);//向data表插入姓名values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID,rawContactId);values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,name);this.getContentResolver().insert(phoneURL,values);//向data表插入电话号码values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID,rawContactId);values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);this.getContentResolver().insert(phoneURL,values);}*/
}

3.AddContactsActivity.java

package com.zhy.myapplication.Actions;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;import com.zhy.myapplication.Contact.ContactsTable;
import com.zhy.myapplication.Contact.User;
import com.zhy.myapplication.R;public class AddContactsActivity extends AppCompatActivity {private EditText nameEditText; //姓名输入框private EditText mobileEditText; //手机输入框private EditText qqEditText; //qq输入框private EditText danweiEditText;//单位输入框private EditText addressEditText;//地址输入框@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_add);setTitle("添加联系人");//从已设置的页面布局获得对应的控件nameEditText = (EditText)findViewById(R.id.name);mobileEditText = (EditText)findViewById(R.id.mobile);danweiEditText = (EditText)findViewById(R.id.danWei);qqEditText = (EditText)findViewById(R.id.qq);addressEditText = (EditText)findViewById(R.id.address);}/*** 创建菜单*/public boolean onCreateOptionsMenu(Menu menu){menu.add(Menu.NONE,1, Menu.NONE,"保存");menu.add(Menu.NONE,2,Menu.NONE,"返回");return super.onCreateOptionsMenu(menu);}/*** 菜单事件*/public boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case 1://保存if(!nameEditText.getText().toString().equals("")){User user = new User();user.setName(nameEditText.getText().toString());user.setMobile(mobileEditText.getText().toString());user.setDanwei(danweiEditText.getText().toString());user.setQq(qqEditText.getText().toString());user.setAddress(addressEditText.getText().toString());ContactsTable ct = new ContactsTable(AddContactsActivity.this);if(ct.addData(user)){Toast.makeText(AddContactsActivity.this,"添加成功",Toast.LENGTH_SHORT).show();finish();}else{Toast.makeText(AddContactsActivity.this,"添加失败",Toast.LENGTH_SHORT).show();}}else {Toast.makeText(AddContactsActivity.this,"请输入数据!",Toast.LENGTH_SHORT).show();break;}case 2://返回finish();break;default:break;}return super.onOptionsItemSelected(item);}
}

4.ContactsMessageActivity.java

package com.zhy.myapplication.Actions;import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import com.zhy.myapplication.Contact.ContactsTable;
import com.zhy.myapplication.Contact.User;
import com.zhy.myapplication.R;/******************显示联系人界面*****************/
public class ContactsMessageActivity extends AppCompatActivity {@SuppressLint("SetTextI18n")@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.message);setTitle("联系人信息");TextView nameTextView; //姓名输入框TextView mobileTextView; //电话输入框TextView qqTextView; //qq输入框TextView danweiTextView; //单位输入框TextView addressTextView; //地址输入框User user;//从设置的页面布局查找对应的控件nameTextView = (TextView)findViewById(R.id.name);mobileTextView = (TextView)findViewById(R.id.mobile);danweiTextView = (TextView)findViewById(R.id.danWei);qqTextView = (TextView)findViewById(R.id.qq);addressTextView = (TextView)findViewById(R.id.address);//将要修改的联系人数据复制到用户界面进行显示Bundle localBundle = getIntent().getExtras();assert localBundle != null;int id = localBundle.getInt("user_ID");ContactsTable ct = new ContactsTable(this);user = ct.getUserByID(id);nameTextView.setText("姓名:"+user.getName());mobileTextView.setText("电话:"+user.getMobile());qqTextView.setText("Q Q:"+user.getQq());danweiTextView.setText("单位:"+user.getDanwei());addressTextView.setText("地址:"+user.getAddress());}/*** 创建菜单*/public boolean onCreateOptionsMenu(Menu menu){menu.add(Menu.NONE,1,Menu.NONE,"返回");return super.onCreateOptionsMenu(menu);}/*** 菜单事件*/public boolean onOptionsItemSelected(MenuItem item){if (item.getItemId() == 1) {//返回finish();}return super.onOptionsItemSelected(item);}
}

5.MyContactContentProvider.java

package com.zhy.myapplication.Actions;import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;public class MyContactsContentProvider extends ContentProvider {private final static String AUTHORITY = "con.zhy.mycontacts.mycontactscontentprovider";private final static String PERSONS_PATH = "person";//多条数据private final static String PERSON_PATH = "person/#";//单条数据private final static int PERSONS = 1;private final static int PERSON = 2;private final static UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);static {// content://com.zhy.mycontacts.mycontactscontentprovide/personsMatcher.addURI(AUTHORITY,PERSON_PATH,PERSONS);// content://com.zhy.mycontacts.mycontactscontentprovide/person/#sMatcher.addURI(AUTHORITY,PERSON_PATH,PERSON);}private SQLiteDatabase db = null;//数据库对象@Overridepublic boolean onCreate() {//创建数据库return false;}@Nullable@Overridepublic Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {return null;}@Nullable@Overridepublic String getType(@NonNull Uri uri) {return null;}@Nullable@Overridepublic Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {return null;}@Overridepublic int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {return 0;}@Overridepublic int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {return 0;}
}

6.UpdateContactsActivity.java

package com.zhy.myapplication.Actions;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.zhy.myapplication.Contact.ContactsTable;
import com.zhy.myapplication.Contact.User;
import com.zhy.myapplication.R;//修改号码记录操作界面
public class UpdateContactsActivity extends AppCompatActivity {//姓名输入框private EditText nameEditText;//号码输入框private EditText mobileEditText;//单位输入框private EditText danweiEditText;//qqprivate EditText qqEditText;//地址private EditText addressEditText;//修改的联系人private User user;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.edit);setTitle("修改联系人");//从已设置的页面布局查找对应的控件nameEditText = (EditText)findViewById(R.id.name);mobileEditText = (EditText)findViewById(R.id.mobile);danweiEditText = (EditText)findViewById(R.id.danWei);qqEditText = (EditText)findViewById(R.id.qq);addressEditText = (EditText)findViewById(R.id.address);//将要修改的联系人数据赋值到用户界面显示Bundle localBundle = getIntent().getExtras();int id = localBundle.getInt("user_ID");ContactsTable ct = new ContactsTable(this);user = ct.getUserByID(id);nameEditText.setText(user.getName());mobileEditText.setText(user.getMobile());danweiEditText.setText(user.getDanwei());qqEditText.setText(user.getQq());addressEditText.setText(user.getAddress());}/*** 创建菜单*/public boolean onCreateOptionsMenu(Menu menu){menu.add(Menu.NONE,1,Menu.NONE,"保存");menu.add(Menu.NONE,2,Menu.NONE,"返回");return super.onCreateOptionsMenu(menu);}/*** 菜单事件*/public boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case 1: //保存if (!nameEditText.getText().toString().equals("")){user.setName(nameEditText.getText().toString());user.setMobile(mobileEditText.getText().toString());user.setDanwei(danweiEditText.getText().toString());user.setQq(qqEditText.getText().toString());user.setAddress(addressEditText.getText().toString());ContactsTable ct = new ContactsTable(UpdateContactsActivity.this);//修改数据库联系人信息if (ct.updateUser(user)){Toast.makeText(UpdateContactsActivity.this,"修改成功!",Toast.LENGTH_SHORT).show();finish();}else {Toast.makeText(UpdateContactsActivity.this,"修改失败!",Toast.LENGTH_SHORT).show();}}else{Toast.makeText(UpdateContactsActivity.this,"数据不能为空!",Toast.LENGTH_SHORT).show();}break;case 2: //返回finish();break;default:break;}return super.onOptionsItemSelected(item);}}

1.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"
><ListViewandroid:id="@+id/listView"android:layout_weight="1.0"android:layout_width="match_parent"android:layout_height="match_parent" />
</LinearLayout>

2.edit.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"><!--姓名--><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="姓名:"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/name"android:layout_width="302dp"android:layout_height="wrap_content" /></LinearLayout><!--单位--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="单位:"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/danWei"android:layout_width="302dp"android:layout_height="wrap_content"android:minLines="3"/></LinearLayout><!--手机号码--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="电话:"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/mobile"android:layout_width="302dp"android:layout_height="wrap_content"android:inputType="number"/></LinearLayout><!--qq--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="Q Q:"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/qq"android:layout_width="302dp"android:layout_height="wrap_content"android:inputType="number"/></LinearLayout><!--地址--><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="地址:"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/address"android:layout_width="302dp"android:layout_height="wrap_content"android:minLines="3"/></LinearLayout></LinearLayout>

3.layout_add.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"><!--姓名--><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="姓名"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/name"android:layout_width="190dp"android:layout_height="wrap_content"/></LinearLayout><!--单位--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="单位"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/danWei"android:layout_width="190dp"android:layout_height="wrap_content"android:minLines="3"/></LinearLayout><!--手机号码--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="电话"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/mobile"android:layout_width="190dp"android:layout_height="wrap_content"android:inputType="number"/></LinearLayout><!--qq--><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:orientation="horizontal"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="qq"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/qq"android:layout_width="190dp"android:layout_height="wrap_content"android:inputType="number"/></LinearLayout><!--地址--><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"><TextViewandroid:layout_width="80dp"android:layout_height="wrap_content"android:text="地址"android:textSize="22dp"android:layout_marginLeft="5dp"/><EditTextandroid:id="@+id/address"android:layout_width="190dp"android:layout_height="wrap_content"android:minLines="3"/></LinearLayout>
</LinearLayout>

4.message.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"><!-- 姓名 --><TextViewandroid:id="@+id/name"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="姓名:"android:textSize="22dp"android:layout_marginLeft="5.0dip"android:layout_marginTop="20dp"/><!-- 单位 --><TextViewandroid:id="@+id/danWei"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="单位:"android:textSize="22dp"android:layout_marginLeft="5.0dip"android:layout_marginTop="20dp"/><!-- 手机号码 --><TextViewandroid:id="@+id/mobile"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="手机号码:"android:textSize="22dp"android:layout_marginLeft="5.0dip"android:layout_marginTop="20dp"/><!-- QQ --><TextViewandroid:id="@+id/qq"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="QQ:"android:textSize="22dp"android:layout_marginLeft="5.0dip"android:layout_marginTop="20dp"/><!-- 地址 --><TextViewandroid:id="@+id/address"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="地址:"android:textSize="22dp"android:layout_marginLeft="5.0dip"android:layout_marginTop="20dp"/>
</LinearLayout>

5.find.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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="50dp"android:text="条件:"android:textSize="20dp"android:layout_marginRight="10dp"android:layout_marginLeft="10dp"/></LinearLayout><EditTextandroid:id="@+id/value"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"android:inputType="textPersonName"android:text="" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_gravity="center_horizontal"><Buttonandroid:id="@+id/find"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="查           询" /><Buttonandroid:id="@+id/cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="取         消" /></LinearLayout></LinearLayout>

Android-Studio简易手机通讯录相关推荐

  1. 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android

    背景 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android 应用程序? 运行调式一个Android项目,写下必要的代码后,接下来的任务是在模拟器或手机上运 ...

  2. Android Studio连接手机设备教程(完全步骤)

    Android Studio连接手机设备教程 一.ADB环境配置 1.查看自己Android Studio配置的sdk路径 打开Android Studio后点击[File]->[Project ...

  3. Android Studio简易音乐播放器设计作业

    Android Studio简易音乐播放器设计作业 实验成功展示 实验代码 MainActivity.java XML文件 class文件 利用BroadcastReceiver模拟音乐播放器,实现播 ...

  4. Android Studio连接手机和夜神模拟器

    Android Studio连接手机 手机数据线连接电脑 打开手机的USB调试模式 Android Studio模拟器选择手机,运行 手机会出现对应的app应用下载界面,点击下载即可运行. Andro ...

  5. 测试新版Android Studio的手机镜像效果

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为669字,预计阅读2分钟 前言 春节刚上班,就开始了疯狂出差的节奏,期间发现Android Studio发布新的版本2022.1 ...

  6. android工程怎么连手机,android studio与手机连接调试步骤详解

    android studio 版本不同连接手机方式有细微的不同,主要方式相似.介绍主要分手机和电脑两部分介绍. 一.手机部分 1.手机端下载一个"一键root权限获取",在安装的过 ...

  7. android studio模拟手机黑屏,Android studio 模拟器启动黑屏解决办法

    React Native 端android环境搭建运行-简便过程(亲测) React Native 端android环境搭建运行-简便过程(亲测) 打开终端 1.下载brew,执行 /bin/zsh ...

  8. Android Studio连接手机详细教程(包含遇到的问题集)

    Android Studio连接手机教程 一.配置Andriod Studio 1.安装Google USB Driver 在Android Studio主界面中,点击SDK Manager,进入An ...

  9. Android Studio运行手机框很大 屏幕很小的解决办法

    关于Android Studio运行手机框很大 屏幕很小的解决办法 才开始接触移动软件开发,按照Android Studio安装教程相关博客安装过后,发生如图问题: 可以发现模拟器运行出来的结果是屏幕 ...

  10. Android Studio 创建手机虚拟机教程

    小白 Android Studio创建手机虚拟机 版本 AndroidStudio 3.5.3 在APP开发中不一定每时每刻都有真机,所以可以通过AndroidStudio 创建一个手机虚拟机 1.创 ...

最新文章

  1. 从hook007学习dll劫持自启动方式
  2. Opencv--直线拟合
  3. java calendar clear_java.util.Calendar clear()方法
  4. 这个世界上不存在什么弯道超车,只存在正道超车
  5. 2019.02.19 bzoj2655: calc(生成函数+拉格朗日插值)
  6. 程序设计导引【总述】
  7. DCMTK各模块说明
  8. 记录一个SetupFactory使用手册
  9. 华硕Y450拆机清灰、拆下光驱助散热、卸载无用软件
  10. 还在用PPT做组织架构图?公司都在用的架构图软件是什么?
  11. 第十五章 输入/输出
  12. oppo手机注册服务器地址,oppo云登录服务器(oppo云服务登录入口)
  13. Exploring the Regularity of Sparse Structure in Convolutional Neural Networks(在卷积神经网络中探索稀疏结构的规律性)
  14. ur机械臂 控制器_UR机器人远程控制研究
  15. 模糊PID控制的规则表一点理解
  16. setFocus不能生效的问题
  17. 寂寞是因为思念谁(校园民谣)铃声 寂寞是因为思念谁(校园民谣)...
  18. 理财-股票(扫文章中的二维码下软件)
  19. 计算机网络,路由与交换技术经典实验整理总结
  20. python面板数据模型操作步骤_任何有效的方法来建立面板数据的回归模型?

热门文章

  1. 大数据安全目前面临得主要挑战有哪些
  2. python——爬虫学习——Beautiful Soup库的使用-(2)
  3. PostgreSQL无法连接Server(报错could not connect to server)
  4. 原神服务器维护后抽奖池会更新吗,原神抽奖记录会刷新吗
  5. socket send函数系列,彻底弄懂socket发送函数,可做参考手册
  6. 搬运工-AI知识介绍系列
  7. 笔记本电脑桌面计算机打不开怎么回事啊,笔记本电脑的声音打不开怎么办
  8. python开发环境搭建实训报告_20191302 实验一《Python程序设计》实验报告
  9. 爬虫--selenium爬取淘宝商品数据
  10. node将html转为pdf,将node.js中的html文件转换为pdf并将其写入磁盘