zoukankan      html  css  js  c++  java
  • 第一阶段个人冲刺博客第九天

    今天将数据库连接成功,并在模拟器上成功实现了空教室查询功能,下面附上代码和截图。

    private View.OnClickListener SearchFloorListener=new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                GetDATA();
            }
        };
        public void GetDATA()
        {
            // com.test.db 是程序的包名,请根据自己的程序调整
            // /data/data/com.test.db/
            // databases 目录是准备放 SQLite 数据库的地方,也是 Android 程序默认的数据库存储目录
            // 数据库名为 test.db
            String DB_PATH = "/data/data/com.example.superman.test/databases/";
            String DB_NAME = "course.db";
    
            // 检查 SQLite 数据库文件是否存在
            if ((new File(DB_PATH + DB_NAME)).exists() == false) {
                // 如 SQLite 数据库文件不存在,再检查一下 database 目录是否存在
                File f = new File(DB_PATH);
                // 如 database 目录不存在,新建该目录
                if (!f.exists()) {
                    f.mkdir();
                }
    
                try {
                    // 得到 assets 目录下我们实现准备好的 SQLite 数据库作为输入流
                    //InputStream is = getBaseContext().getAssets().open(DB_NAME);
    
                    InputStream is = getBaseContext().getResources().openRawResource(R.raw.course);
                    // 输出流
                    OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);
    
                    // 文件写入
                    byte[] buffer = new byte[1024];
                    int length;
                    while ((length = is.read(buffer)) > 0) {
                        os.write(buffer, 0, length);
                    }
    
                    // 关闭文件流
                    os.flush();
                    os.close();
                    is.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            test(DB_PATH,DB_NAME);
        }
        public void test(String DB_PATH,String DB_NAME)
        {
            // 下面测试 /data/data/com.test.db/databases/ 下的数据库是否能正常工作
            SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(DB_PATH + DB_NAME, null);
            Cursor cursor = database.rawQuery("select * from course where teacher='基教'", null);
            ArrayList<JavaBean> list=new ArrayList<JavaBean>();
            if(cursor.moveToFirst())
            {
                do{
                    String name=cursor.getString(cursor.getColumnIndex("name"));
                    String teacher=cursor.getString(cursor.getColumnIndex("teacher"));
                    double price=cursor.getDouble(cursor.getColumnIndex("price"));
                    list.add(new JavaBean(name,teacher,price));
                }while (cursor.moveToNext());
            }
    //        if (cursor.getCount() > 0) {
    //            cursor.moveToFirst();
    //            try {
    //                // 解决中文乱码问题
    //                byte test[] = cursor.getBlob(0);
    //                String strtest = new String(test, "utf-8").trim();
    //                // 看输出的信息是否正确
    //                Log.d("是否能够查找到本地数据库的信息",strtest);
    //                System.out.println(strtest);
    //            } catch (UnsupportedEncodingException e) {
    //                // TODO Auto-generated catch block
    //                e.printStackTrace();
    //            }
    //        }
            cursor.close();
    
            ArrayList<String> arrayList=new ArrayList<String>();
            String string=null;
            for(int i=0;i<list.size();i++)
            {
                string=list.get(i).getName()+"-"+list.get(i).getTeacher()+"-"+list.get(i).getPrice();
                arrayList.add(string);
            }
            tableLayout=findViewById(R.id.BuildingTable);
    
            //清除表格所有行
            tableLayout.removeAllViews();
            //全部列自动填充空白处
            tableLayout.setStretchAllColumns(true);
            for(int i=0;i<arrayList.size();i++)
            {
                TableRow tableRow=new TableRow(this);
                //tv用于显示
                TextView tv=new TextView(this);
                tv.setHeight(300);
                tv.setText(arrayList.get(i).toString());
                tableRow.addView(tv);
                tableLayout.addView(tableRow, new TableLayout.LayoutParams(MP, WC,1));
    
            }
        }
    
    }
    

      

  • 相关阅读:
    笔记-树形dp
    20181018 考试记录
    20181015 考试记录&数论
    [模板]2-SAT 问题&和平委员会
    FLask的偏函数应用
    Flask中的g到底是个什么鬼?
    Flask源码关于local的实现
    Flask的“中间件”
    Flask之模板
    FLask之视图
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/10939986.html
Copyright © 2011-2022 走看看