xmlns:tools=“http://schemas.android.com/tools”
android:id=“@+id/LinearLayout1”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
android:background=“@drawable/logo” >
<EditText
android:layout_width=“0dp”
android:layout_height=“0dp” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_gravity=“center”
android:layout_marginTop=“80dp”
android:textColor=“#ff0000”
android:textSize=“35sp”
android:text=“数据库操作” />
<EditText
android:id=“@+id/username”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:background=“@drawable/edit_style”
android:layout_margin=“20dp”
android:inputType=“text”
android:textSize=“25dp”
android:maxLines=“12”
android:singleLine=“true”
android:hint=“用户名” />
<EditText
android:id=“@+id/password”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:background=“@drawable/edit_style”
android:inputType=“textPassword”
android:layout_marginLeft=“20dp”
android:layout_marginRight=“20dp”
android:textSize=“25dp”
android:maxLines=“12”
android:singleLine=“true”
android:hint=“密码” />
<Button
android:id=“@+id/submit”
android:layout_marginTop=“30dp”
android:layout_marginLeft=“20dp”
android:layout_marginRight=“20dp”
android:layout_marginBottom=“10dp”
android:textSize=“25dp”
android:background=“@drawable/button_style”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“登录” />
<Button
android:id=“@+id/register”
android:layout_marginLeft=“20dp”
android:layout_marginRight=“20dp”
android:textSize=“25dp”
android:background=“@drawable/button_style”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“注册” />
登录后的页面activity_index.xml,这个页面就显示了一个用户的姓名(开始还有几个测试按钮,之后感觉不好看删除了O(∩_∩)O哈哈~,你们可以自己加几个按钮测试)
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:tools=“http://schemas.android.com/tools”
android:id=“@+id/LinearLayout1”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
tools:context=“ r e l a t i v e P a c k a g e . {relativePackage}. relativePackage.{activityClass}” >
<TextView
android:id=“@+id/text”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_margin=“20dp” />
<ImageView
android:layout_width=“match_parent”
android:layout_height=“0.5dp”
android:background=“@color/gray”
android:layout_marginLeft=“20dp”
android:layout_marginRight=“20dp” />
页面,样式代码都在这里了,还一张背景图片,可以到网上随便找一张。下面来看看数据库操作的代码。
TUser.java相当于实体类。
package com.example.androiddemo01.model;
public class TUser {
private Integer id;
private String username;
private String password;
private String name;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public TUser(Integer id, String username, String password, String name,
String sex) {
super();
this.id = id;
this.username = username;
this.password = password;
this.name = name;
this.sex = sex;
}
public TUser() {
super();
}
}
DbOpenHelper.java链接数据库,创建数据库类
package com.example.androiddemo01.dao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DbOpenHelper extends SQLiteOpenHelper {
private static final String DBNAME = “data.db”;
private static int version = 1;
//content容器,name链接数据库名字,version版本号,factory游标工厂
public DbOpenHelper(Context context) {
super(context, DBNAME, null, version);
}
//运行DbOpenHelper时执行,建立表和数据库,没有数据库则建立,只有第一次运行执行
@Override
public void onCreate(SQLiteDatabase db) {
String sql = “create table t_user(”+
“id integer primary key autoincrement not null,”+
“username text(10),”+
“password text(10),”+
“name text(10),”+
“sex text(2))”;
//执行SQL语句
db.execSQL(sql);
sql = “insert into t_user (‘username’, ‘password’, ‘name’, ‘sex’) values(‘admin’,‘admin’, ‘张三’, ‘男’)”;
db.execSQL(sql);
}
//更新,版本升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
TUserDAO.java数据库操作类,增删改查。
package com.example.androiddemo01.dao;
import java.util.ArrayList;
import java.util.List;
import com.example.androiddemo01.model.TUser;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
//持久层类,对数据库的操作
public class TUserDAO {
private SQLiteDatabase db;
//content容器,上下文
public TUserDAO(Context context){
super();
DbOpenHelper helper = new DbOpenHelper(context);
db = helper.getWritableDatabase();
}
//登录验证
public TUser findUserNameAndPassword(String str, String str1) {
String sql = “select * from t_user where username = ? and password = ?”;
Cursor cursor = db.rawQuery(sql, new String[] {str, str1});
TUser user = null;
//cursor.moveToNext判断下一个是否有值
if(cursor.moveToNext()){
user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
}
return user;
}
//查找表中所有数据
public List findAll(){
String sql = “select * from t_user”;
Cursor cursor = db.rawQuery(sql, null);
List list = new ArrayList();
if(cursor.moveToNext()){
TUser user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
list.add(user);
}
return list;
}
//根据姓名模糊查找
public List searchByName(String key){
List list = new ArrayList();
key = “%”+key+“%”;
Cursor cursor = db.rawQuery(“select * from t_user where name like ?”, new String[]{key});
while(cursor.moveToNext()){
TUser user = new TUser(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
list.add(user);
}
return list;
}
//添加
public void insert(TUser t){
db.execSQL(“insert into t_user(username, password, name, sex) values(?, ?, ?, ?)”, new Object[] {t.getUsername(), t.getPassword(), t.getName(), t.getSex()});
System.out.println(“添加数据成功!”);
}
//修改
public void update (TUser user){
db.execSQL(“update t_user set name=?, sex = ?, password = ?, username = ? where id = ?”,
new Object[] {user.getName(), user.getSex(), user.getPassword(), user.getUsername(), user.getId()});
}
//根据id删除
public void delete(int id){
Integer i = new Integer(id);
db.execSQL(“delete from student where id = ?”, new Object[]{i});
}
}
MainActivity.java登录处理类
package com.example.androiddemo01;
import com.example.androiddemo01.dao.TUserDAO;
import com.example.androiddemo01.model.TUser;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
总结
本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
(img-IeQE0LA7-1713220792347)]
[外链图片转存中…(img-LHa5C1hS-1713220792348)]
[外链图片转存中…(img-qkgF8xYi-1713220792349)]
[外链图片转存中…(img-jo4IOMQY-1713220792350)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
总结
本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!