<?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="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/tv_name"
android:textSize="20sp"
android:layout_weight="1"
android:textColor="#d20606" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="20sp"
android:id="@+id/tv_phone"
android:layout_weight="1"/> </LinearLayout>
package com.lidaochen.test;

public class Person {
private String name;
private String phone; 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;
}
}
package com.lidaochen.test;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(Context context)
{
super(context, "lidaochen.db", null, 4);
} @Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("alter table info add phone varchar(20)");
}
}
package com.lidaochen.test;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
private ListView listView;
private MyOpenHelper myOpenHelper;
private List<Person> lists;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找到ListView控件
listView = (ListView) findViewById(R.id.lv);
myOpenHelper = new MyOpenHelper(this);
// 定义一个集合用来存取ListView要展示的数据
lists = new ArrayList<Person>();
}
public void add(View v)
{
// 获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
// 执行增加一条的sql语句
// table 就是表名
// ContentValues 内部封装了一个map key: 对应列的名字 value对应的值
ContentValues values = new ContentValues();
values.put("name", "王五");
values.put("phone", "110");
// 返回值代表新插入行的行ID,如果发生错误,则返回-1
long insert = db.insert("info", null, values); // 底层就是在组装sql语句
// 数据库用完需要关闭
db.close();
if (insert > 0)
{
Toast.makeText(getApplicationContext(), "添加成功!", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "添加失败!", Toast.LENGTH_SHORT).show();
}
}
public void delete(View v)
{
// 获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
// 返回值传入whereClause时受影响的行数,0 除此以外。 删除所有行并获取计数传递“1”作为thewhereClause。
int delete= db.delete("info", "name = ?", new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(), "删除了" + delete + "行", Toast.LENGTH_SHORT).show();
}
public void update(View v)
{
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("phone", "114");
int update = db.update("info", contentValues, "name = ?", new String[]{"王五"});
db.close();
Toast.makeText(getApplicationContext(), "更新了" + update + "行", Toast.LENGTH_SHORT).show();
}
public void find(View v)
{
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
Cursor cursor = db.query("info", null, null, null, null, null, null);
if (cursor != null && cursor.getCount() > 0)
{
while (cursor.moveToNext())
{
// columnIndex 代表列的索引
String name = cursor.getString(1);
String phone = cursor.getString(2);
// 把数据封装到javabean
Person person = new Person();
person.setName(name);
person.setPhone(phone);
// 把Javabean对象加入到集合中
lists.add(person);
}
// 设置数据适配器
listView.setAdapter(new MyAdapter());
}
db.close();
} // 定义ListView的数据适配器
public class MyAdapter extends BaseAdapter
{ public MyAdapter() {
super();
} @Override
public int getCount() {
return lists.size();
} @Override
public Object getItem(int position) {
return null;
} @Override
public long getItemId(int position) {
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null)
{
// 创建新的View对象
view = View.inflate(getApplicationContext(), R.layout.item, null);
}
else
{
view = convertView;
}
// 找到控件用来显示数据
// 注意这里要用view.findViewById(R.id.tv_name) findViewById默认是当前的XML
TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
TextView tv_phone = (TextView)view.findViewById(R.id.tv_phone);
// 显示数据
Person person = lists.get(position);
tv_name.setText(person.getName());
tv_phone.setText(person.getPhone());
return view;
}
} }

最新文章

  1. [Server] 搭建发布环境Web Deploy
  2. UVa 297 Quadtrees -SilverN
  3. DataTable/Array Linq查询,groupby
  4. 201521123025 《Java程序设计》第1周学习总结
  5. Lsyncd - 实时文件同步工具(精译)
  6. LOJ #6539 奇妙数论题
  7. Android 自定义弹出框带EditText
  8. Lodop打印连续的纸张
  9. JS正则表达式分组模式
  10. 2017/2/6:在oracle中varchar与varchar2的区别与增删改查
  11. 微信 小程序组件 加入购物车全套 one wxml
  12. 我们能从 jQuery 的一个正则表达式中学到什么?
  13. Linux 共享库(动态库)
  14. bzoj 3209 bzoj1799 数位dp
  15. Maven实战(插件管理)
  16. New Moto X 2014 全版本官方解锁Bootloader图文教程
  17. LeetCode OJ:Pascal&#39;s TriangleII(帕斯卡三角II)
  18. Quick Find
  19. PL/SQL12的安装与使用
  20. Android dependency has different version.You should manually set the same version via DependencyReso

热门文章

  1. springboot整合redis(集群)
  2. tomcat 8.xxx ssl使用websocket Failed to close the ServletOutputStream connection cleanly
  3. python GC、分支、循环
  4. 清理mac缓存
  5. Python3 Selenium自动化web测试 ==&gt; 第一节 起始点之Python单元测试框架 unittest
  6. ubuntu16.04 下通过rc.d(rc.local)实现开机启动(未登录)anydesk
  7. Windows下遍历所有GIT目录更新项目脚本
  8. Python_小林的爬取QQ空间相册图片链接程序
  9. Java学习笔记-枚举类
  10. MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)