Android(1)-----单击按钮更换背景,事件监听,页面切换Intent,intent消息传递

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")); //设置字体颜色
 
原文地址:https://www.cnblogs.com/Lemonades/p/10505123.html