用Android语言写一个通讯录系统
时间: 2024-05-18 07:13:08 浏览: 12
好的,下面是一个简单的Android通讯录系统的实现步骤:
1. 创建一个新的Android项目,并在布局文件中添加一个ListView组件。
2. 创建一个Contact类,它将包含联系人的名称、电话号码和电子邮件地址。
3. 创建一个自定义的适配器类,以便将联系人数据显示在ListView中。
4. 在MainActivity类中,创建一个List<Contact>对象并将其填充到适配器中。
5. 在适配器中,覆盖getView()方法以便将联系人数据显示在ListView条目中。
6. 为ListView添加一个点击事件监听器,以便在用户点击条目时显示联系人详细信息。
7. 在联系人详细信息视图中,创建一个表单以便用户可以编辑联系人信息。
8. 在MainActivity类中,实现添加、编辑和删除联系人的方法,并在适当的时候更新适配器和ListView。
9. 最后,将应用程序打包并在Android设备上测试。
以上是一个简单的通讯录系统的实现步骤,具体实现过程中还需要根据实际需求进行适当的调整和完善。
相关问题
用Android语言写一个通讯录系统 完整代码
很抱歉,由于代码较长,无法在此处完整展示。以下是一个简单的Android通讯录系统的基本代码框架,供您参考:
MainActivity.java
```
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<Contact> contactList;
private ContactAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
contactList = new ArrayList<>();
adapter = new ContactAdapter(MainActivity.this, contactList);
listView.setAdapter(adapter);
// 添加联系人按钮点击事件
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, AddContactActivity.class);
startActivityForResult(intent, 1);
}
});
// ListView条目点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Contact contact = contactList.get(position);
Intent intent = new Intent(MainActivity.this, EditContactActivity.class);
intent.putExtra("contact", contact);
startActivityForResult(intent, 2);
}
});
// 加载联系人数据
loadContacts();
}
// 加载联系人数据
private void loadContacts() {
// TODO: 从数据库或其他数据源中加载联系人数据
contactList.add(new Contact("张三", "123456789", "zhangsan@example.com"));
contactList.add(new Contact("李四", "987654321", "lisi@example.com"));
adapter.notifyDataSetChanged();
}
// 添加、编辑、删除联系人后更新ListView
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1) { // 添加联系人
Contact contact = (Contact) data.getSerializableExtra("contact");
contactList.add(contact);
adapter.notifyDataSetChanged();
} else if (requestCode == 2) { // 编辑联系人
Contact contact = (Contact) data.getSerializableExtra("contact");
int position = data.getIntExtra("position", -1);
if (position != -1) {
contactList.set(position, contact);
adapter.notifyDataSetChanged();
}
} else if (requestCode == 3) { // 删除联系人
int position = data.getIntExtra("position", -1);
if (position != -1) {
contactList.remove(position);
adapter.notifyDataSetChanged();
}
}
}
}
}
```
Contact.java
```
public class Contact implements Serializable {
private String name;
private String phone;
private String email;
public Contact(String name, String phone, String email) {
this.name = name;
this.phone = phone;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
```
ContactAdapter.java
```
public class ContactAdapter extends BaseAdapter {
private Context context;
private List<Contact> contactList;
public ContactAdapter(Context context, List<Contact> contactList) {
this.context = context;
this.contactList = contactList;
}
@Override
public int getCount() {
return contactList.size();
}
@Override
public Object getItem(int position) {
return contactList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.contact_item, parent, false);
holder = new ViewHolder();
holder.nameTextView = convertView.findViewById(R.id.name_text_view);
holder.phoneTextView = convertView.findViewById(R.id.phone_text_view);
holder.emailTextView = convertView.findViewById(R.id.email_text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Contact contact = contactList.get(position);
holder.nameTextView.setText(contact.getName());
holder.phoneTextView.setText(contact.getPhone());
holder.emailTextView.setText(contact.getEmail());
return convertView;
}
static class ViewHolder {
TextView nameTextView;
TextView phoneTextView;
TextView emailTextView;
}
}
```
AddContactActivity.java
```
public class AddContactActivity extends AppCompatActivity {
private EditText nameEditText;
private EditText phoneEditText;
private EditText emailEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
nameEditText = findViewById(R.id.name_edit_text);
phoneEditText = findViewById(R.id.phone_edit_text);
emailEditText = findViewById(R.id.email_edit_text);
// 保存按钮点击事件
Button saveButton = findViewById(R.id.save_button);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = nameEditText.getText().toString();
String phone = phoneEditText.getText().toString();
String email = emailEditText.getText().toString();
Contact contact = new Contact(name, phone, email);
Intent intent = new Intent();
intent.putExtra("contact", contact);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
```
EditContactActivity.java
```
public class EditContactActivity extends AppCompatActivity {
private EditText nameEditText;
private EditText phoneEditText;
private EditText emailEditText;
private Contact contact;
private int position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_contact);
nameEditText = findViewById(R.id.name_edit_text);
phoneEditText = findViewById(R.id.phone_edit_text);
emailEditText = findViewById(R.id.email_edit_text);
// 获取要编辑的联系人数据
Intent intent = getIntent();
contact = (Contact) intent.getSerializableExtra("contact");
position = intent.getIntExtra("position", -1);
nameEditText.setText(contact.getName());
phoneEditText.setText(contact.getPhone());
emailEditText.setText(contact.getEmail());
// 保存按钮点击事件
Button saveButton = findViewById(R.id.save_button);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = nameEditText.getText().toString();
String phone = phoneEditText.getText().toString();
String email = emailEditText.getText().toString();
Contact updatedContact = new Contact(name, phone, email);
Intent intent = new Intent();
intent.putExtra("contact", updatedContact);
intent.putExtra("position", position);
setResult(RESULT_OK, intent);
finish();
}
});
// 删除按钮点击事件
Button deleteButton = findViewById(R.id.delete_button);
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.putExtra("position", position);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
```
注意:以上代码仅供参考,具体实现过程中需要根据实际需求进行适当的调整和完善。同时,代码中使用了一些第三方库和资源文件,如需要使用请自行添加和替换。
android studio 通讯录
Android Studio是一款用于开发Android应用程序的集成开发环境(IDE)。通讯录是一个常见的功能,可以在Android Studio中使用Java语言来实现。以下是一个简单的示例代码,演示了如何创建一个通讯录应用程序:
```java
import android.Manifest;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private static final int PERMISSIONS_REQUEST_READ_CONTACTS = 100;
private ListView contactsListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contactsListView = findViewById(R.id.contactsListView);
// 检查是否有读取联系人权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// 请求读取联系人权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_CONTACTS},
PERMISSIONS_REQUEST_READ_CONTACTS);
} else {
// 已经有读取联系人权限,直接加载通讯录
loadContacts();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == PERMISSIONS_REQUEST_READ_CONTACTS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授予了读取联系人权限,加载通讯录
loadContacts();
} else {
// 用户拒绝了读取联系人权限,可以给出相应的提示或处理
}
}
}
private void loadContacts() {
ArrayList<String> contactsList = new ArrayList<>();
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
contactsList.add(contactName);
}
cursor.close();
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, contactsList);
contactsListView.setAdapter(adapter);
}
}
```
这段代码创建了一个简单的通讯录应用程序,它使用ContentResolver查询系统联系人数据库,并将联系人姓名显示在一个ListView中。在运行应用程序之前,需要确保在AndroidManifest.xml文件中添加了读取联系人权限。