1、单击按钮更换背景
2、基本布局介绍
android:textAlignment="center"//控件对齐
android:gravity="center"//文字对齐
android:orientation="horizontal"//LinearLayout 的水平排列
android:layout_gravity="center" //控件的居中
android:inputType="textPassword" //设置为密码框
android:src="@drawable/char1" //设置imageView 的图片
例子:实现了水平并排和居中
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="其他:"
android:layout_marginLeft="40dp"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:hint="请输入"
android:layout_marginRight="40dp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
3、事件监听:
4、页面切换Intent:
A、新建java.class:MainActivity2.class,相对应还要建XML文件
在事件监听器写如下代码:
Intent intent1=new Intent(MainActivity.this,MainActivity2.class);//参数: 当前页面,要跳转到的页面的class文件
intent1.putExtra("name",editText_name.getText());//参数:key用于识别;要传递的字符串
startActivity(intent1);//注:和接收码startActivityForResult()作用一样。
B、在AndroidManifest对java.class进行注册
<activity android:name=".MainActivity2"></activity>
C、接受消息
Intent intent2=getIntent();
name=intent2.getStringExtra("name");
5、请求码和接受码的使用:
点击跳转的事件监听中把startActivity(intent1)替换成:
startActivityForResult(intent1,4836);//接受码
点击跳转回来的事件监听
Intent intent2=new Intent(MainActivity2.this,MainActivity.class);
intent2.putStringArrayListExtra("arrayList_hobby",arrayList_hobby);
setResult(4837,intent2);//请求码
finish();
6、数据库的使用:
6_1、继承 extends SQLiteOpenHelper
6_2、重写构造器
//用于创建数据库 private static final String DB_NAME="db_user"; private static final int DB_VERSION=1; public DatabaseHelper(Context context) { super(context, DB_NAME, null,DB_VERSION);//创建数据库 }
6_3、重写两个方法:
@Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
6_4、创建表结构: 要在SQL语句的连接 记得加上对应空格
//用于创建表和表结构 private static final String TABLE_USER="users"; private static final String COL_ID="id"; private static final String COL_USERNAME="username"; private static final String COL_PWD="pwd";
//要在SQL语句的连接 记得加上对应空格 private static final String sql=" create table "+TABLE_USER+"( "+COL_ID+" integer primary key autoincrement, "+COL_USERNAME+" text, "+COL_PWD+" text "+")"; @Override public void onCreate(SQLiteDatabase db) { //创建表 Log.i("db","onCreate"); //String sql="create table"+TABLE_USER+"("+COL_ID+"integer primary key autoincrement,"+COL_USERNAME+"text,"+COL_PWD+"text"+")"; db.execSQL(sql); }
6_5 增加数据,查询数据
//插入数据 public boolean add(Users users){ SQLiteDatabase db=this.getReadableDatabase(); ContentValues values=new ContentValues(); values.put(COL_USERNAME,users.getUserName()); values.put(COL_PWD,users.getPwd()); double flag=0; try { flag=db.insert(TABLE_USER,null,values); }catch (Exception e){ Log.i("DatabaseError", e.getMessage()); } if (flag>0)return true; return false; } //查询数据1 public ArrayList<Users> getAllDAata(){ ArrayList<Users> list=new ArrayList<>(); SQLiteDatabase db=this.getReadableDatabase(); //游标 Cursor cursor=null; cursor=db.rawQuery("select * from "+TABLE_USER,null); if(cursor!=null &&cursor.moveToFirst()){ do{ Users users=new Users(); users.setId(cursor.getInt(cursor.getColumnIndex(COL_ID)) ); users.setPwd(cursor.getString(cursor.getColumnIndex(COL_PWD)));//注意这里是getString users.setUserName(cursor.getString(cursor.getColumnIndex(COL_USERNAME)));//得到列名的索引,再根据索引得到内容 list.add(users); }while (cursor.moveToNext()); } if(cursor!=null){ cursor.close();//用来关闭游标 } return list; }
7、SharedPreferences()的使用 :用来保存用户的设置
记得最后要进行应用,不应用用不了 editor.apply();//需要对editor进行应用
代码的基本知识点:
editText_name.getText().length()==0 //用来判断输入框是否为空
editText_name.getText().toString() //得到输入框的内容
if(register_userPwd.getText().toString().equals(register_againUserPwd.getText().toString()) ){//getText()进行toString才能使用equal()
sideIndex.setBackgroundColor(Color.parseColor("#8a8a8a")); //设置字体颜色