• 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")); //设置字体颜色
     
  • 相关阅读:
    有return的情况下try_catch_finally的执行顺序
    java异常处理之try_catch_finally
    乔布简历
    策略模式--经典详细分析
    观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
    luogu2444 [POI2000]病毒
    bzoj3172 luogu3966 [TJOI2013]单词
    luogu3808 luogu3796 AC自动机(简单版) AC自动机(加强版)
    vijos1459 车展
    poj2985 The k-th Largest Group
  • 原文地址:https://www.cnblogs.com/Lemonades/p/10505123.html
Copyright © 2020-2023  润新知