自己也是第一次使用,中途遇到很多难题,总算努力还是会有收获,自己代码有很多不足的地方希望大神指出来一起学习,加油奥利给,话不多说贴代码

第一步,onCreate建立数据库

public  class DBHelperop  extends SQLiteOpenHelper {    // 数据库文件名    public static final String DB_NAME = "two.db";    // 数据库版本号    public static final int DB_VERSION = 1;    public DBHelperop(Context context) {        super(context, DB_NAME, null, DB_VERSION);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("CREATE TABLE  practic(id INTEGER PRIMARY KEY AUTOINCREMENT," +                             " num VARCHAR,newratio VARCHAR,numratio VARCHAR,total VARCHAR,str_time VARCHAR)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int i, int i1) {    }}

第二步,我建了一个实体类接收数据,代码没贴完

public class DbInfor {    private int id;    private String num;    private double newratio;    private double numratio;    private double total;    private String str_time;    public DbInfor(){}    public DbInfor(String num, double newratio, double numratio, double total, String str_time) {        this.num = num;        this.newratio = newratio;        this.numratio = numratio;        this.total = total;        this.str_time = str_time;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getNum() {        return num;    }

第三步,建了一个管理数据库的类,我只做了两个查询和一个插入

public class DBManager {    private DBHelperop helper;   private SQLiteDatabase db;    public DBManager(Context context){        helper = new DBHelperop(context);             db = helper.getWritableDatabase();          }    public void add(List persons){                 db.beginTransaction();                try{                         for (DbInfor p:persons){                             db.execSQL("INSERT INTO practic (num,newratio,numratio,total,str_time)VALUES(?,?,?,?,?)",                                         //select * from role order by role_id desc limit 0,1;                                             new Object[]{p.getNum(),p.getNewratio(),p.getNumratio(),p.getTotal(),p.getStr_time()});                             }                        db.setTransactionSuccessful();                     }catch(Exception e){                        e.printStackTrace();                     }finally {                         db.endTransaction();                    }             }    public List findAllDbInfor(int a){                List dbinfoe = new ArrayList<>();                //"select * from practic order by id desc limit "+a+",2;"              Cursor c = db.rawQuery("select * from practic order by id desc limit "+a+",6", null);               while(c.moveToNext()){                   DbInfor p = new DbInfor();                         p.setId(c.getInt(c.getColumnIndex("id")));                        p.setNum(c.getString(c.getColumnIndex("num")));                         p.setNewratio(c.getDouble(c.getColumnIndex("newratio")));                        p.setNumratio(c.getDouble(c.getColumnIndex("numratio")));                   p.setTotal(c.getDouble(c.getColumnIndex("total")));                   p.setStr_time(c.getString(c.getColumnIndex("str_time")));                   dbinfoe.add(p);                    }                c.close();                return dbinfoe;             }    public DbInfor findDbInfor(){        DbInfor p = null;        Cursor c = db.rawQuery("select * from practic order by id desc limit 0,1", null);        while(c.moveToNext()){             p = new DbInfor();            p.setId(c.getInt(c.getColumnIndex("id")));            p.setNum(c.getString(c.getColumnIndex("num")));            p.setNewratio(c.getDouble(c.getColumnIndex("newratio")));            p.setNumratio(c.getDouble(c.getColumnIndex("numratio")));            p.setTotal(c.getDouble(c.getColumnIndex("total")));            p.setStr_time(c.getString(c.getColumnIndex("str_time")));        }        c.close();        return p;

第三步,一个输入数据的类,带一个查询,

public class MainActivity extends Activity{    private DBManager dm;    private EditText shuru;    private TextView shuchu;    private  int a = 100;    private  double newratio ;    private  double numratio ;    private double total;    private Button btConform;    private TextView cahkan;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        shuru = findViewById(R.id.et_etnum);        shuchu = findViewById(R.id.la_view2);        cahkan= findViewById(R.id.cahkan);        btConform = findViewById(R.id.bt_conform);        dm = new DBManager(this);        btConform.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                insertData();            }        });        cahkan.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                startActivity(new Intent(MainActivity.this,DetialActivity.class));            }        });    }        public void insertData(){            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm E");            Date date = new Date(System.currentTimeMillis());            String time = sdf.format(date);//获取系统时间            String shurunum = shuru.getText().toString();            DbInfor dbInform= dm.findDbInfor();//查询最后一个数据            newratio = Double.valueOf(shurunum)/(double)a;            if (dbInform==null){                numratio = Double.valueOf(shurunum)+0/(double)a;                total =Double.valueOf(shurunum)+0;            }else {                numratio = (Double.valueOf(shurunum)+dbInform.getTotal())/(double)a;                total =Double.valueOf(shurunum)+dbInform.getTotal();            }            List persons = new ArrayList<>();            DbInfor p1 = new DbInfor(shurunum,newratio,numratio,total,time);//插入获取的数据            persons.add(p1);            dm.add(persons);            findDb();    }    public  void findDb(){        //输出方法       DbInfor dbInfor= dm.findDbInfor();        if (dbInfor.getNumratio()==0){            shuchu.setText(0+"%");        }        DecimalFormat df=new DecimalFormat(".##");        double d=dbInfor.getNumratio()*100;        String st=df.format(d);        shuchu.setText(st+"%");    }}

第五步,查询所有数据并显示

public class DetialActivity extends AppCompatActivity implements XListView.IXListViewListener{    private TextView title,detail,time;    private ListRooAdapter listAdapter;    private XListView lvContent;    private DBManager dm;    private int a=0;       @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_detial);        title= findViewById(R.id.news_tvtitle);        detail= findViewById(R.id.news_tvdetail);        title= findViewById(R.id.news_tvtime);        dm = new DBManager(this);        listAdapter= new ListRooAdapter(this);        lvContent =findViewById(R.id.lvcent);        lvContent.setXListViewListener(this);        lvContent.setPullRefreshEnable(true);        lvContent.setPullLoadEnable(true);        lvContent.hideFoot();        lvContent.setAdapter(listAdapter);        love();    }     public  void  love(){         onComplete();         List datas = dm.findAllDbInfor(a);         if (datas.size()<0){             Toast.makeText(this, "暂时还没有记录呢", Toast.LENGTH_SHORT).show();         }         if(datas.size() < 5){             lvContent.hideFoot();//根据数据显示长度的,显示加载按钮         }else{             lvContent.showFoot();         }         // lvContent.showFoot();         if(a == 0) {             listAdapter.setDatas(datas);         }else{             listAdapter.addDatas(datas);         }         if(datas.size()>0){             a+=6;         }     }    @Override    public void onRefresh() {//下拉刷新        a=0;        love();    }    @Override    public void onLoadMore() {        love();//点击加载    }    public void onComplete(){        lvContent.stopLoadMore();        lvContent.stopRefresh();    }}

其他代码我就不贴了,每个人用数据库有自己的用法 如需要联系我
最后效果因为原因没上传,有些方法参考了该作者链接为
2021年1月6日周三凌晨12:53

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. (Androidx)error: expected reference but got (raw string) @+and
  3. Android———ContentProvider理解与使用
  4. Android(安卓)studio for mac 的一些常用快捷键
  5. 我的android 第24天 - ContentUris和ContentProvider
  6. Android系统架构和四大组件
  7. 利用androidannotations的@Backgroud及@UiThread注解替换原生Asy
  8. Android下SD卡文件操作与数据读写
  9. Android中Toolbar的使用 AppCompatActivity必备

随机推荐

  1. 使用FragmentTabHost时,tabwidget被framen
  2. android 判断网络连接状态
  3. android 短信验证自动获取验证码
  4. Android(安卓)深入研究LBS(基于位置的服务
  5. 【Android】application标签说明
  6. Android外置存储器(SD卡)工具类
  7. 2013.11.28 ——— android 网络3g wifi
  8. android 关于图片的放大,缩小,旋转功能的实
  9. 自定义进度条
  10. Android(安卓)自定义Progress Bar