Android项目——运动会报名APP总结

一、Android代码建数据库

数据库——sqlite

1、sqlite数据库建表

建议先完成以下两项:

  • 了解数据类型
  • 了解sqlite下sql的基本语法

sqlite教程
Android数据库建库建表的几种方法

(1)源码
//基于SQLiteOpenHelper方法对数据库的创建与升级
//1、新建一个java类来继承SQLiteOpenHelper
public class MyData extends SQLiteOpenHelper {

    public MyData(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        //建表 if not exists(如果表不存在)
        /*用户表user
        * 编号 id integer
        * 用户名 user_name varchar 学号
        * 密码 user_pwd varchar
        * */
        String table_user="user";
        String user_tb="create table if not exists "+table_user+
                "(id integer primary key autoincrement," +
                "user_name varchar not null UNIQUE," +
                "user_pwd varchar)";
        sqLiteDatabase.execSQL(user_tb);
        sqLiteDatabase.execSQL("insert into user values (null,'admin','123');");
        /*报名表register
         * 编号 id integer
         * 学号 user_number varchar 外键约束references user(user_name)
         * 姓名 name varchar
         * 性别 sex boolean false为男 true为女
         * 参选项目 item text
         * */
        String table_reg="register";
        String reg_tb="create table if not exists "+table_user+
                "(id integer primary key autoincrement," +
                "user_number varchar references user(user_name)," +
                "name varchar not null," +
                "sex boolean not null," +
                "item text not null)";
        sqLiteDatabase.execSQL(reg_tb);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

}
//2、使用示例
	//数据库sqlite
    private MyData myData;
    private SQLiteDatabase db;
    private final static String db_name="SportMeet.db";
    openDB();
    /*示例*/
    //1、执行查询操作并获取结果
    Cursor cursor=db.query("user",new String[]{"id","user_name","user_pwd"},null,null, null, null, null);
    //2、将指针移动到第一条数据上
    cursor.moveToFirst();
    //3、读取数据
    Log.e("onCreate: ", cursor.getString(1));

/*打开数据库openDB()如下:
    public void openDB() throws SQLiteException{
        myData=new MyData(this,db_name,null,1);
        try {
            db=myData.getWritableDatabase();
        }
        catch (SQLiteException exception){
            db=myData.getReadableDatabase();
        }
    }*/
(2)效果图

图1
图2
图3

2、CRUD操作(SQLiteDatabase类)
  1. inser
  2. query
  3. update
  4. delete

二、默认Toolbar的问题

Android官方导航栏ActionBar使用详解
android 动态设置actionbar背景色(代码修改)

1、隐去默认的toolbar

//方法一:隐藏actionbar
if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

//方法二:
//AndroidManifest.xml的activity中加入,缺点,activity整体类型发生改变
android:theme="@style/Theme.AppCompat.Light.NoActionBar"

2、设置全屏
//隐藏标题栏
getSupportActionBar().hide();
//隐藏系统状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
3、ToolBar中menu无法同时显示图标和文字问题的解决方法

可以在 Activity 中重写onMenuOpened()方法,通过反射使 icon 和 title 同时可见。

//将如下代码复制到Activity中即可:
    @Override
    public boolean onMenuOpened(int featureId, Menu menu) {
        if (menu != null) {
            if (menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder"))
            {
                try {
                    Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                    method.setAccessible(true);
                    method.invoke(menu, true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return super.onMenuOpened(featureId, menu);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值