查询数据展示案例 菜鸟级别的我
来源:互联网 发布:mac 安装git 环境 编辑:程序博客网 时间:2024/05/21 06:17
前几天做了一个小测验,其中一个题目没有做完其中的四五小题。自己不会写长代码,只会一点短小的。老师发的拿来写写。
题目:
编写一个从数据库里查询数据展示到listview上的案例运行结果:点击find按钮,会将数据库中添加的数据显示在List View上。如下:
(1) entity/Person类中:补充完整构造方法
package cn.edu.bzu.datashow.entity;/** * Created by fengj on 2017/5/10. */public class Person { private int id; private String name; private String phone; //任务:生成构造方法参数 name,phone public Person(String name, String phone) { this.name = name; this.phone = phone; } public int getId() { return id; } public void setId(int 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;}
}
(2) 修正db/PersonDBHelper使其没有错误
package cn.edu.bzu.datashow.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by fengj on 2017/5/10. *///任务:修正问题public class PersonDBHelper extends SQLiteOpenHelper { //数据库的名称为person.db ,数据库的版本为1 public PersonDBHelper(Context context) { super(context,"person.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table info(_id integer primary key,name varchar(20),phone varchar(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
(3) 完成dao/PersonDao中的getPersons方法
package cn.edu.bzu.datashow.dao;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList;import java.util.List;import cn.edu.bzu.datashow.db.PersonDBHelper;import cn.edu.bzu.datashow.entity.Person;/** * Created by fengj on 2017/5/10. */public class PersonDao { private PersonDBHelper personDBHelper; public PersonDao(Context context){ personDBHelper=new PersonDBHelper(context); } public void add(Person person){ SQLiteDatabase sqLiteDatabase=personDBHelper.getWritableDatabase(); ContentValues contentValues=new ContentValues(); contentValues.put("name",person.getName()); contentValues.put("phone",person.getPhone()); sqLiteDatabase.insert("info",null,contentValues); } public List<Person> getPersons(){ //任务完成查询所有数据的方法 List<Person> persons=new ArrayList<Person>(); SQLiteDatabase sqLiteDatabase=personDBHelper.getWritableDatabase(); Cursor cursor=sqLiteDatabase.query("info",null,null,null,null,null,null); while(cursor.moveToNext()){ int id= cursor.getInt(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); String phone=cursor.getString(cursor.getColumnIndex("phone")); Person person=new Person(name,phone); person.setId(id); persons.add(person); } return persons; }}
(4) 完成MainActivity中的查询数据库中的所有person,显示在列表中
package cn.edu.bzu.datashow;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ListView;import java.util.List;import cn.edu.bzu.datashow.adapter.PersonAdapter;import cn.edu.bzu.datashow.dao.PersonDao;import cn.edu.bzu.datashow.entity.Person;public class MainActivity extends AppCompatActivity { private PersonDao personDao; private ListView lvPersons; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lvPersons= (ListView) findViewById(R.id.lvPersons); personDao=new PersonDao(this); personDao.add(new Person("张三","13476089006")); personDao.add(new Person("李四","13476089008")); } public void find(View view){ //任务查询数据库中的所有person,显示在列表中 List<Person> persons=personDao.getPersons(); PersonAdapter personAdapter=new PersonAdapter(this,R.layout.item,persons); lvPersons.setAdapter(personAdapter); }}
(5) 已有的代码中设计了一处小小的错误
package cn.edu.bzu.datashow.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;import java.util.List;import cn.edu.bzu.datashow.R;import cn.edu.bzu.datashow.entity.Person;public class PersonAdapter extends ArrayAdapter<Person> {private int resourceId;public PersonAdapter(Context context, int textViewResourceId, List<Person> objects) {super(context, textViewResourceId, objects);resourceId = textViewResourceId;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Person person= getItem(position);View view;ViewHolder viewHolder;if (convertView == null) {//任务补充完整view = LayoutInflater.from(getContext()).inflate(resourceId, null);viewHolder = new ViewHolder();viewHolder.tvName = (TextView) view.findViewById(R.id.tvName);viewHolder.tvPhone = (TextView) view.findViewById(R.id.tvPhone);view.setTag(viewHolder);} else {view = convertView;viewHolder = (ViewHolder) view.getTag();}viewHolder.tvName.setText(person.getName());viewHolder.tvPhone.setText(person.getPhone());return view;}class ViewHolder {TextView tvName;TextView tvPhone;}}
运行结果图为:
阅读全文
0 0
- 查询数据展示案例 菜鸟级别的我
- 案例——商品展示 菜鸟级别的我
- 案例——天气预报 菜鸟级别的我
- SQLite数据库--查询数据展示到listview上的案例
- 我的编程心得【菜鸟级别】
- 线性布局 菜鸟级别的我
- Android UI 菜鸟级别的我
- 实验 logincheck 菜鸟级别的我
- 网络图片浏览器 菜鸟级别的我
- 菜鸟级别的Shiro配置、使用案例(一)
- 菜鸟级别的Shiro配置、使用案例(一)
- 从数据库里查询数据展示到listview上的案例
- 一个小倒计时程序 菜鸟级别的我
- ajax请求数据和处理数据的案例展示
- Elasticsearch5.6.1导入数据并通过Kibana5.6.1展示和查询数据案例学习(上篇)
- 商品展示的案例
- 处理百万级别以上的数据查询提高效率的方法
- 数据查询经典案例
- 程序员面试金典——回文链表
- [攻克存储] 掌握SDRAM/DDR的结构与寻址
- c++string函数详解
- 时间戳
- PermissionsDispatcher库的使用(简单处理Android 6.0系统中的运行时权限的开源库)
- 查询数据展示案例 菜鸟级别的我
- java多线程例子
- Linux服务器中SVN版本库的创建与配置
- Springboot 之 静态资源路径配置
- oracle时间函数,new_day()
- 用netlink API与内核通信
- spring集成quartz定时任务(注解实现)
- VB .NET把Excel中的数据导入SQL SERVER数据库
- 为单身程序猿们推荐一个相亲公众号,拿走不谢