千家信息网

如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!原题目要求:(1)通过"添加联系人"按钮
千家信息网最后更新 2026年11月01日如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查

小编给大家分享一下如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

原题目要求:

(1)通过"添加联系人"按钮,跳转到"添加"信息的Dialog输入用户名、联系电话、地址选择性别,添加后显示到联系人列表。

(2)点击 联系人中的项,可以弹出Dialog,修改联系人信息或者删除联系人。

(3)可以通过输入姓名进行联系人信息的查找,并给出信息。

说明

1.此篇博文是代码部分,一些有关于实现的细节,感兴趣的同学可以看一下此篇博文

2.建议阅读《安卓编程权威指南3》,里面有关Sqlite的代码的格式值得学习,或者说,整本书的代码风格都是值得学习的

3.我会持续更新我的作业,关注不迷路哈

效果图

代码

目录结构

这是我的目录结构,adapter包下是适配器,dao包下是访问数据库的接口和实现方法,database包下是一些有关数据库的类,dialog包下是自定义对话框,model包下是数据模型

添加依赖

由于使用了RecyclerView,所以得添加依赖

implementation 'com.android.support:recyclerview-v7:28.0.0'

1

具体代码

1.User.java

public class User {

private UUID id;

private String name;

private String phone;

private String address;

private int sex;

public User() {

}

public UUID getId() {

return id;

}

public void setId(UUID id) {

this.id = id;

}

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 getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public int getSex() {

return sex;

}

public void setSex(int sex) {

this.sex = sex;

}

public User(UUID id, String name, String phone, String address, int sex) {

this.id = id;

this.name = name;

this.phone = phone;

this.address = address;

this.sex = sex;

}

public User(String name, String phone, String address, int sex) {

this.id =UUID.randomUUID();

this.name = name;

this.phone = phone;

this.address = address;

this.sex = sex;

}

}

2.UserCursorWrapper.java

public class UserCursorWrapper extends CursorWrapper {

/**

* Creates a cursor wrapper.

*

* @param cursor The underlying cursor to wrap.

*/

public UserCursorWrapper(Cursor cursor) {

super(cursor);

}

public User getUser(){

//获取每行数据

String uuidString = getString(getColumnIndex(UserDbSchema.UserTable.Columns.UUID));

String name = getString(getColumnIndex(UserDbSchema.UserTable.Columns.NAME));

String phone = getString(getColumnIndex(UserDbSchema.UserTable.Columns.PHONE));

String address = getString(getColumnIndex(UserDbSchema.UserTable.Columns.ADDRESS));

int sex = getInt(getColumnIndex(UserDbSchema.UserTable.Columns.SEX));

return new User(UUID.fromString(uuidString),name,phone,address,sex);

}

}

3.UserDbSchema.java

public class UserDbSchema {

//利用内部类定义user表结构

public static final class UserTable{

//定义表名

public static final String TABLE_NAME = "user";

//定义数据表字段

public static final class Columns{

public static final String UUID = "uuid";

public static final String NAME = "name";

public static final String PHONE = "phone";

public static final String ADDRESS = "address";

public static final String SEX = "sex";

}

}

}

4.UserSqlHelper.java

public class UserSqlHelper extends SQLiteOpenHelper {

private static final int VERSION = 1;//定义版本

private static final String DATABASE_NAME = "course21DataBase";

public UserSqlHelper(Context context) {

super(context, DATABASE_NAME, null, VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

/**

此时数据库是没有被创建或者打开的,

直到getReadableDatabase,getWritableDatabase这两个方法其中一个被调用

*/

db.execSQL("create table "+ UserDbSchema.UserTable.TABLE_NAME+

"("+"_id integer primary key autoincrement,"+

UserDbSchema.UserTable.Columns.UUID+","+

UserDbSchema.UserTable.Columns.NAME+","+

UserDbSchema.UserTable.Columns.PHONE+","+

UserDbSchema.UserTable.Columns.ADDRESS+","+

UserDbSchema.UserTable.Columns.SEX+")"

);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

//不更新数据库

}

}

5.IUserDao.java

public interface IUserDao {

/**

* 获取所有用户信息

* */

ArrayList getAllUser();

/**

* 获取指定名字的用户信息,默认名字不重复

* */

User getUserByName(String name);

/**

*添加用户信息

* */

void addUser(User user);

/**

* 修改指定用户信息

* */

void updateUser(User user);

/**

* 删除指定用户信息

* */

void deleteUser(User user);

}

6.UserDao.java

public class UserDao implements IUserDao{

private static UserDao sUserDao;

private Context mContext;

private SQLiteDatabase mDatabase;

public UserDao(Context context) {

mContext = context.getApplicationContext();

mDatabase = new UserSqlHelper(mContext).getWritableDatabase();//此时数据库才是可写的

}

/**

* 全局保留一个userDao实例

* */

public static UserDao getUserDao(Context context){

if (sUserDao == null){

sUserDao = new UserDao(context);

}

return sUserDao;

}

/**

* 获取所有用户信息

*/

@Override

public ArrayList getAllUser() {

ArrayList users = new ArrayList<>();

UserCursorWrapper cursorWrapper = queryUsers(null,null);

try {

cursorWrapper.moveToFirst();

while (!cursorWrapper.isAfterLast()){

users.add(cursorWrapper.getUser());

cursorWrapper.moveToNext();

}

} finally {

cursorWrapper.close();

}

return users;

}

/**

* 获取指定名字的用户信息,默认名字不重复

*

* @param name

*/

@Override

public User getUserByName(String name) {

//定义查询条件

String whereClause = UserDbSchema.UserTable.Columns.NAME + " = ?";

String [] whereArgs = new String[]{ name };

UserCursorWrapper cursorWrapper = queryUsers(whereClause,whereArgs);

try {

//查询失败

if (cursorWrapper.getCount() == 0){

return null;

}

cursorWrapper.moveToFirst();

return cursorWrapper.getUser();

} finally {

//关闭

cursorWrapper.close();

}

}

/**

* 添加用户信息

*

* @param user

*/

@Override

public void addUser(User user) {

//防止传入空值

if (user!=null){

ContentValues values = getContentValues(user);

//插入数据

mDatabase.insert(UserDbSchema.UserTable.TABLE_NAME,null,values);

}

}

/**

* 修改指定用户信息

*

* @param user

*/

@Override

public void updateUser(User user) {

String uuidString = user.getId().toString();

ContentValues values = getContentValues(user);

mDatabase.update(UserDbSchema.UserTable.TABLE_NAME,

values,

UserDbSchema.UserTable.Columns.UUID+" = ? ",

new String[] { uuidString });

}

/**

* 删除指定用户信息

*

* @param user

*/

@Override

public void deleteUser(User user) {

String uuidString = user.getId().toString();

mDatabase.delete(UserDbSchema.UserTable.TABLE_NAME,

UserDbSchema.UserTable.Columns.UUID+" = ? ",

new String[] { uuidString });

}

//私有方法,返回一个ContentValues对象

private ContentValues getContentValues(User user){

ContentValues values = new ContentValues();

//添加键值对

values.put(UserDbSchema.UserTable.Columns.UUID,user.getId().toString());

values.put(UserDbSchema.UserTable.Columns.NAME,user.getName());

values.put(UserDbSchema.UserTable.Columns.PHONE,user.getPhone());

values.put(UserDbSchema.UserTable.Columns.ADDRESS,user.getAddress());

values.put(UserDbSchema.UserTable.Columns.SEX,user.getSex());

return values;

}

/**

* 查询记录,返回一个CursorWrapper对象,可以调用里面的getUser()方法获得User值

*

* 不管是查询特殊还是全部,都可以调用此方法

*/

private UserCursorWrapper queryUsers(String whereClause,String [] whereArgs){

Cursor cursor = mDatabase.query(

UserDbSchema.UserTable.TABLE_NAME,

null,

whereClause,

whereArgs,

null,

null,

null

);

return new UserCursorWrapper(cursor);

}

}

7.UserAdapter.java

public class UserAdapter extends RecyclerView.Adapter{

private ArrayList mUsers;

private Context mContext;//上下文对象

private LayoutInflater mInflater;

private DialogListener mListener = new DialogListener() {

@Override

public void sendMessage() {

updateView();

}

};

public UserAdapter(Context context,ArrayList users) {

mUsers = users;

mContext = context;

mInflater = LayoutInflater.from(mContext);

}

@NonNull

@Override

public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

View view = mInflater.inflate(R.layout.info_item, parent, false);

ViewHolder holder = new ViewHolder(view);

return holder;

}

@Override

public void onBindViewHolder(@NonNull ViewHolder holder,int position) {

// mPosition = position;

final User user = mUsers.get(position);

//性别决定照片

holder.mImageView.setImageResource(user.getSex()==1?R.drawable.boy:R.drawable.girl);

holder.mTextViewPhone.setText("电话: "+user.getPhone());

holder.mTextViewName.setText(user.getName());

holder.mTextViewAddress.setText("地址: "+user.getAddress());

//点击之后弹出一个对话框

holder.itemView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

UpdateDialog dialog = new UpdateDialog(mContext,user,mListener);

dialog.show();

}

});

}

public void updateView(){

mUsers = UserDao.getUserDao(mContext).getAllUser();

notifyDataSetChanged();

}

@Override

public int getItemCount() {

return mUsers.size();

}

class ViewHolder extends RecyclerView.ViewHolder{

public ImageView mImageView;

public TextView mTextViewName,mTextViewAddress,mTextViewPhone;

public ViewHolder(@NonNull View itemView) {

super(itemView);

mImageView = itemView.findViewById(R.id.info_image);

mTextViewName = itemView.findViewById(R.id.info_name);

mTextViewAddress = itemView.findViewById(R.id.info_address);

mTextViewPhone = itemView.findViewById(R.id.info_phone);

}

}

}

8.AddDialog.java

public class AddDialog extends Dialog {

private EditText mEditTextName,mEditTextAddress,mEditTextPhone;

private Button mButtonAdd,mButtonCancel;

private RadioGroup mRadioGroup;

private int sex = 1;//性别

private Context mContext;

private DialogListener mListener;

public AddDialog(@NonNull Context context, DialogListener listener) {

super(context);

this.mContext = context;

this.mListener = listener;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.add_dialog_layout);

initView();

mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

switch (checkedId){

case R.id.add_radio_sex_boy:

sex = 1;

break;

case R.id.add_radio_sex_girl:

sex = 0;

break;

}

}

});

mButtonCancel.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

}

});

mButtonAdd.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String name = mEditTextName.getText().toString();

String address = mEditTextAddress.getText().toString();

String phone = mEditTextPhone.getText().toString();

User user = new User(name,phone,address,sex);

UserDao.getUserDao(mContext).addUser(user);

mListener.sendMessage();

dismiss();

}

});

setCanceledOnTouchOutside(false);

}

//初始化界面

private void initView(){

mEditTextName = findViewById(R.id.edit_add_name);

mEditTextAddress = findViewById(R.id.edit_add_address);

mEditTextPhone = findViewById(R.id.edit_add_phone);

mButtonAdd = findViewById(R.id.button_add_add);

mButtonCancel = findViewById(R.id.button_add_cancel);

mRadioGroup = findViewById(R.id.add_radio_sex);

}

}

9.AddDialog对应布局 add_dialog_layout.xml

android:orientation="vertical" android:layout_width="250dp"

android:layout_height="400dp"

android:background="#FDF5F5">

android:layout_width="match_parent"

android:layout_height="80dp">

android:layout_centerInParent="true"

android:textSize="20dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="添加联系人"/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#ccc"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:layout_centerInParent="true"

android:background="#E2E7FC"

android:layout_width="180dp"

android:layout_height="200dp"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="姓名:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_add_name"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"

android:hint="请输入..."/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="性别:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/add_radio_sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:orientation="horizontal" >

android:id="@+id/add_radio_sex_boy"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:checked="true"

android:text="男" />

android:id="@+id/add_radio_sex_girl"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女" />

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="电话:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_add_phone"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"

android:hint="请输入..."/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="地址:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_add_address"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"

android:hint="请输入..."/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#ccc"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"/>

android:layout_width="match_parent"

android:layout_height="50dp">

android:id="@+id/button_add_add"

android:textSize="12dp"

android:layout_width="0dp"

android:layout_gravity="center"

android:layout_weight="3"

android:layout_height="40dp"

android:text="添加"/>

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"/>

android:id="@+id/button_add_cancel"

android:text="取消"

android:layout_width="0dp"

android:layout_weight="3"

android:layout_height="40dp"

android:layout_gravity="center"

android:textSize="12dp"/>

10. UpdateDialog.java

public class UpdateDialog extends Dialog {

public User mUser;//弹框需要展示的信息

private EditText mEditTextName,mEditTextAddress,mEditTextPhone;

private Button mButtonUpdate,mButtonDelete,mButtonCancel;

private RadioGroup mRadioGroup;

private int sex;

private ImageView mImageView;

private DialogListener mListener;

private Context mContext;

public UpdateDialog(@NonNull Context context,User user, DialogListener listener) {

super(context);

this.mUser = user;

this.mContext = context;

this.mListener = listener;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.update_dialog_layout);

initView();

mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

switch (checkedId){

case R.id.update_radio_sex_boy:

sex = 1;

break;

case R.id.update_radio_sex_girl:

sex = 0;

break;

}

}

});

//删除按钮操作

mButtonDelete.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

UserDao.getUserDao(mContext).deleteUser(mUser);

mListener.sendMessage();

dismiss();

}

});

mButtonCancel.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

}

});

mButtonUpdate.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// tag = 2;

String name = mEditTextName.getText().toString();

String address = mEditTextAddress.getText().toString();

String phone = mEditTextPhone.getText().toString();

User user = new User(mUser.getId(),name,phone,address,sex);

UserDao.getUserDao(mContext).updateUser(user);

mListener.sendMessage();

dismiss();

}

});

setCanceledOnTouchOutside(false);

}

//初始化界面

private void initView(){

mEditTextName = findViewById(R.id.edit_update_name);

mEditTextAddress = findViewById(R.id.edit_update_address);

mEditTextPhone = findViewById(R.id.edit_update_phone);

mButtonUpdate = findViewById(R.id.button_update_update);

mButtonCancel = findViewById(R.id.button_update_cancel);

mButtonDelete = findViewById(R.id.button_update_delete);

mRadioGroup = findViewById(R.id.update_radio_sex);

mImageView = findViewById(R.id.image_update);

sex = mUser.getSex();

//初始化内容

mRadioGroup.check(mUser.getSex()==1?R.id.update_radio_sex_boy:R.id.update_radio_sex_girl);

mEditTextName.setText(mUser.getName());

mEditTextPhone.setText(mUser.getPhone());

mEditTextAddress.setText(mUser.getAddress());

mImageView.setImageResource(mUser.getSex()==1?R.drawable.boy:R.drawable.girl);

}

}

11. UpdateDialog对应布局 update_dialog_layout.xml

android:orientation="vertical" android:layout_width="250dp"

android:layout_height="400dp"

android:background="#FDF5F5">

android:layout_width="match_parent"

android:layout_height="80dp">

android:id="@+id/image_update"

android:src="@drawable/girl"

android:layout_centerInParent="true"

android:layout_width="60dp"

android:layout_height="60dp"/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#ccc"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:layout_centerInParent="true"

android:background="#E2E7FC"

android:layout_width="180dp"

android:layout_height="200dp"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="姓名:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_update_name"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="性别:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/update_radio_sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:orientation="horizontal" >

android:id="@+id/update_radio_sex_boy"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:checked="true"

android:text="男" />

android:id="@+id/update_radio_sex_girl"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女" />

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="电话:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_update_phone"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:text="地址:"

android:layout_marginLeft="10dp"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/edit_update_address"

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"

android:textSize="12dp"/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#ccc"

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"/>

android:layout_width="match_parent"

android:layout_height="50dp">

android:id="@+id/button_update_delete"

android:textSize="12dp"

android:layout_width="0dp"

android:layout_gravity="center"

android:layout_weight="3"

android:layout_height="40dp"

android:text="删除"/>

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"/>

android:id="@+id/button_update_update"

android:layout_width="0dp"

android:layout_weight="3"

android:layout_height="40dp"

android:layout_gravity="center"

android:text="修改"

android:textSize="12dp"/>

android:layout_width="0dp"

android:layout_weight="1"

android:layout_height="match_parent"/>

android:id="@+id/button_update_cancel"

android:text="取消"

android:layout_width="0dp"

android:layout_weight="3"

android:layout_height="40dp"

android:layout_gravity="center"

android:textSize="12dp"/>

12 DialogListener.java

public interface DialogListener {

void sendMessage();

}

1

2

3

13.MainActivity.java

public class MainActivity extends AppCompatActivity{

private Button mButtonAdd;

private RecyclerView mRecyclerView;

private UserAdapter mAdapter;

private ArrayList mUsers;

private ImageView mImageView;

private EditText mEditText;

private DialogListener mListener = new DialogListener() {

@Override

public void sendMessage() {

mAdapter.updateView();

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

getSupportActionBar().hide();

init();

initData();

mRecyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));

mAdapter = new UserAdapter(MainActivity.this,mUsers);

mRecyclerView.setAdapter(mAdapter);

mButtonAdd.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

new AddDialog(MainActivity.this,mListener).show();

}

});

//点击查找

mImageView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String name = mEditText.getText().toString();

if (name.equals("")){

Toast.makeText(MainActivity.this,"查询名字不允许为空",Toast.LENGTH_SHORT).show();

}else {

User user = UserDao.getUserDao(MainActivity.this).getUserByName(name);

UpdateDialog dialog = new UpdateDialog(MainActivity.this,user,mListener);

dialog.show();

}

}

});

}

private void init(){

mButtonAdd = findViewById(R.id.main_button_add);

mRecyclerView = findViewById(R.id.main_recycler_view);

mEditText = findViewById(R.id.main_edit_name);

mImageView = findViewById(R.id.main_image_find);

}

void initData(){

mUsers = UserDao.getUserDao(MainActivity.this).getAllUser();

}

}

14.主布局文件activity_main.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="60dp">

android:id="@+id/main_edit_name"

android:layout_gravity="bottom"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="3"

android:hint="请输入需要查询的名字"

android:layout_marginLeft="20dp"

android:layout_marginRight="10dp"/>

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1">

android:id="@+id/main_image_find"

android:src="@drawable/find"

android:layout_width="35dp"

android:layout_height="35dp"

android:layout_centerInParent="true"/>

android:id="@+id/main_recycler_view"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"/>

android:id="@+id/main_button_add"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="添加联系人"/>

15.子布局文件 info_item.xml

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="100dp">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:background="#F8F4D3"

android:layout_width="80dp"

android:layout_height="match_parent">

android:id="@+id/info_image"

android:layout_centerInParent="true"

android:src="@drawable/girl"

android:layout_width="60dp"

android:layout_height="60dp"/>

android:layout_width="0dp"

android:layout_weight="1"

android:background="#E1F5EC"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="2">

android:id="@+id/info_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginLeft="10dp"

android:text="大青儿"

android:textSize="25dp"

android:textColor="#333"/>

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1">

android:id="@+id/info_phone"

android:layout_gravity="center"

android:text="电话:13222240503"

android:layout_marginLeft="10dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/info_address"

android:layout_gravity="center"

android:text="地址:江苏苏州"

android:layout_marginLeft="10dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#666"/>

看完了这篇文章,相信你对"如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

信息 数据 用户 联系 联系人 名字 查询 输入 代码 地址 性别 数据库 电话 布局 方法 姓名 对象 结构 对话框 按钮 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 上海睿民互联网科技有限公司 北京路客互联网科技有限公司 互联网科技官网 厦门中拓互联网络科技有限公司 艾特科技互联网 奔汉互联网科技 互联网科技公司有哪些 长亮科技 互联网金融 衡水科技产业互联网平台 青岛中康互联网医疗科技有限公司 互联网系的金融科技公司 互联网企业和科技型企业 智腾互联网科技有限公司 互联网科技产业特征 互联网公司黑科技创始人 深圳艾果互联网通讯科技 爱医互联网络科技 朱啸虎曾投资哪些互联网科技企业 广州全民伙伴互联网科技有限公司 耶加雪菲 广州万易互联网科技有限公司 互联网科技的 互联网科技英文 互联网科技公司需要的职位 深圳前海聚择互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 无锡工业互联网科技有限公司 神州科技互联网有限公司 玉溪新华互联网科技怎么选
0