安卓学习之SQLite+ListView完成一个通讯录
来源:互联网 发布:pr软件在那里下载 编辑:程序博客网 时间:2024/06/06 14:10
activity_main.xml 含有ListView布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sqlite.MainActivity"> <ListView android:id="@+id/user_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="50dp" /> <LinearLayout android:id="@+id/bottom" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <Button android:id="@+id/addUser" android:text="添加联系人" android:textSize="18dp" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/searchUser" android:text="查询联系人" android:textSize="18dp" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout></RelativeLayout>user_item.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/user_img" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/user_name" android:textSize="18dp" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/user_img"/> <TextView android:id="@+id/telnumber" android:layout_marginTop="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/user_name" android:layout_alignLeft="@+id/user_name" android:layout_alignStart="@+id/user_name"/></RelativeLayout>MainActivity.java Main活动,显示联系人ListView,各种点击事件操作
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private MyDatabaseHelper dbHelper; private List<User> UserList = new ArrayList<>(); private Button addUser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addUser = (Button) findViewById(R.id.addUser); addUser.setOnClickListener(this); dbHelper = new MyDatabaseHelper(this,"User.db",null,1); //初始化数据 initUser(); UserAdapter adapter = new UserAdapter(MainActivity.this, R.layout.user_item,UserList); ListView listView = (ListView) findViewById(R.id.user_list); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent,View view, int position,long id){ User user = UserList.get(position); String name = user.getName(); String telnumber = user.getTelnumber(); Intent intent = new Intent(MainActivity.this,UserActivity.class); intent.putExtra("name",name); intent.putExtra("telnumber",telnumber); startActivity(intent); } }); } private void initUser(){ SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("User",null,null,null,null,null,null); if(cursor.moveToFirst()){ do{ //遍历 String name = cursor.getString(cursor.getColumnIndex("name")); String telnumber = cursor.getString(cursor.getColumnIndex("telnumber")); User user = new User(name,telnumber,R.mipmap.ic_launcher); UserList.add(user); }while(cursor.moveToNext()); } cursor.close(); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.addUser:{ Intent intent = new Intent(MainActivity.this,AddUserActivity.class); startActivity(intent); this.finish(); } break; } }}User.java 联系人类
public class User { private int imgId; private String name; private String telnumber; public User(String name,String telnumber,int imgId){ this.name = name; this.telnumber = telnumber; this.imgId = imgId; } public int getImgId(){ return imgId; } public String getName(){ return name; } public String getTelnumber(){ return telnumber; }}UserAdapter.java ListView的适配器
public class UserAdapter extends ArrayAdapter<User>{ private int resourceId; public UserAdapter(Context context, int textViewResourceId,List<User> objects){ super(context,textViewResourceId,objects); resourceId = textViewResourceId; } @Override public View getView(int position,View converView,ViewGroup parent){ User user = getItem(position);//获取当前User实例 View view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false); ImageView userimg = (ImageView) view.findViewById(R.id.user_img); TextView username = (TextView) view.findViewById(R.id.user_name); TextView telphone = (TextView) view.findViewById(R.id.telnumber); userimg.setImageResource(user.getImgId()); username.setText(user.getName()); telphone.setText(user.getTelnumber()); return view; }}AddUserActivity.java 添加联系人信息的活动
public class AddUserActivity extends AppCompatActivity implements View.OnClickListener{ private MyDatabaseHelper dbHelper; private EditText username,telnumber; private Button ok_add,create_database; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_user); dbHelper = new MyDatabaseHelper(this,"User.db",null,1); username = (EditText) findViewById(R.id.add_user_name); telnumber = (EditText) findViewById(R.id.add_user_telnumber); ok_add = (Button) findViewById(R.id.ok_add); ok_add.setOnClickListener(this); create_database = (Button) findViewById(R.id.create_database); create_database.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.create_database:{ dbHelper.getWritableDatabase(); } break; case R.id.ok_add:{ String name = username.getText().toString(); String tel_number = telnumber.getText().toString(); if(name == null || tel_number == null){ Toast.makeText(this,"用户名和电话不能为空!",Toast.LENGTH_SHORT).show(); }else{ SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name",name); values.put("telnumber",tel_number); db.insert("User",null,values); values.clear(); Toast.makeText(this,"添加成功!",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(AddUserActivity.this,MainActivity.class); startActivity(intent); this.finish(); } } } }}MyDatabaseHelper.java MyDatabaseHelper类,用来帮助管理数据库,建立数据库、更新数据库
public class MyDatabaseHelper extends SQLiteOpenHelper{ public static final String Create_User_Table = "create table User (" + "id integer primary key autoincrement," + "name text," + "telnumber text)"; private Context mContext; public MyDatabaseHelper(Context context,String name,SQLiteDatabase.CursorFactory factory, int version){ super(context,name,factory,version); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(Create_User_Table); Toast.makeText(mContext,"创建成功",Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }}UserActivity.java用来显示用户详细信息的活动
public class UserActivity extends AppCompatActivity { private TextView name,telnumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user); name = (TextView) findViewById(R.id.text_name); telnumber = (TextView) findViewById(R.id.text_number); Intent intent = getIntent(); String user_name = intent.getStringExtra("name"); name.setText(user_name); String telephone = intent.getStringExtra("telnumber"); telnumber.setText(telephone); }}activity_add_user.xml添加联系人信息的布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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="com.example.sqlite.AddUserActivity"> <EditText android:id="@+id/add_user_name" android:hint="姓名" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/add_user_telnumber" android:hint="电话号码" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/add_user_name"/> <Button android:id="@+id/ok_add" android:text="添加" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/add_user_telnumber"/> <Button android:id="@+id/create_database" android:text="创建数据库" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/ok_add"/></RelativeLayout>activity_user.xml 点击ListView后显示联系人详细信息的
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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="com.example.sqlite.UserActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="92dp" android:text="姓名" android:textSize="20dp" android:layout_marginLeft="70dp" android:layout_marginStart="39dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignEnd="@+id/textView" android:layout_alignRight="@+id/textView" android:layout_below="@+id/textView" android:layout_marginTop="29dp" android:text="电话" android:textSize="20dp"/> <TextView android:id="@+id/text_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView" android:layout_marginLeft="49dp" android:layout_marginStart="49dp" android:layout_toEndOf="@+id/textView" android:layout_toRightOf="@+id/textView" android:textSize="20dp"/> <TextView android:id="@+id/text_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView2" android:layout_alignStart="@+id/text_name" android:layout_alignLeft="@+id/text_name" android:layout_alignRight="@+id/text_name" android:textSize="20dp"/></RelativeLayout>
阅读全文
0 0
- 安卓学习之SQLite+ListView完成一个通讯录
- 安卓学习之SQLite相关学习指南
- 安卓学习笔记之SQLite数据库
- 安卓入门学习之ListView
- 安卓布局之ListView学习笔记
- 安卓学习之路之如何显示一个listview列表视图
- 一个简单的安卓通讯录
- 安卓学习之路_20140505_EditText、SQLite语法
- 【Android】安卓学习笔记之操作SQLite数据库基础
- 安卓之内容提供者获取通讯录
- 安卓之获取通讯录类
- 安卓SQLite学习总结
- 一个通讯录 完成增删查找
- 安卓自定义一个ListView
- 安卓之SQLite知识
- Android学习之 SQLite 与 ListView
- 安卓Sqlite数据库完成学生管理系统小案例
- 学习笔记之安卓的显示控件ListView
- redis 学习笔记
- 谈谈我理解中的价值
- 自考总结
- caffe参数含义
- Linux学习网站
- 安卓学习之SQLite+ListView完成一个通讯录
- BootLoader学习
- spring异常org.springframework.beans.factory.NoSuchBeanDefinitionException
- git使用总结(一)
- static关键字[java7高级进阶]
- Leetcode算法课程第七周作业
- linux常用命令整理
- 51 nod 1705 七星剑(概率dp)
- 日记(周末)