美文网首页
数据存储(上)

数据存储(上)

作者: 我爱吃青苹果 | 来源:发表于2017-05-04 21:38 被阅读0次

    1.长度单位

    1.PX

    pixels 是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px 会比较多
    

    2.dp

    Density independent pixels设备无关像素,简称dip,也叫dp一般情况下,在不同分辨率下都不会有缩放的感觉
    

    3.sp

    同dip/dp 相似,会根据用户的字体大小偏好来缩放,主要用于设置字体的大小
    

    2.点击事件

    点击事件有四种写法格式
    
    • 内部类实现
    bt_01.setOnClickListener(new MyListener());
    
    class MyListener implements OnClickListener{
        public void onClick(View v) {
            //逻辑代码
        }
    }
    
    • 匿名内部类
    bt_01.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            }
    });
    
    • 当前Activity实现onClickListener接口
    public class MainActivity extends Activity implements OnClickListener {
        private Button bt_01;
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            bt_01 = (Button) findViewById(R.id.bt_01);
            
            bt_01.setOnClickListener(this);
        }
    
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.bt_01:
                    Toast.makeText(MainActivity.this, "按钮01被点击了。", 0).show();
                break;
            }
        }
    }
    
    • 布局xml文件里面声明onclick属性,代码中创建onclick方法
    <Button
        android:onClick="click"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮04" />
    
    //代码中创建onclick方法,注意为public,不要漏写View view参数 
    public void click(View view){
        Toast.makeText(MainActivity.this, "按钮04被点击了。", 0).show();
    }
    

    3.Logcat

    Android 的Logcat 用于显示系统的调试信息,用于日志的输出
    

    日志级别,从低到高分别为:verbose、debug、info、warn、error

    //第一个参数可以用于日志的过滤,第二个参数是日志正文
    Log.v(tag,"我是verbose级别的日志");//verbose 提醒
    Log.d(tag, "我是debug级别的日志");//debug 调试
    Log.i(tag, "我是info级别的日志");//info 信息
    Log.w(tag, "我是警告级别的日志");//warn 警告
    Log.e(tag, "我是错误级别的日志");//error 错误
    
    

    4.数据存储

    1.存储方式

    1 文件存储:以IO流形式把数据存入手机内存或者SD卡
    2 SharedPreferences:它本质上是一个XML文件,存入手机内存中。常用于存储简单的参数设
    3 SQLite数据库:SQLite是一个轻量级,跨平台的数据库
    4 Content Provider:内存提供者,Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用
    5 网络存储:把数据存储到服务器,不存储在本地
    
    • 存入内存
    1 getFileDir()来获取路径/data/data/包名/files/     
    2 getCacheDir()代表的是/data/data/包名/cache/,缓存目录,保存一些临时的数据
    
    • 存入外部SD卡
      读取和写入SD卡需要声明权限
    
    try {
        // 检查sd卡是挂载
        if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            Toast.makeText(this, "sd卡不可用,请检查sd卡的状态", 0).show();
            return;
        }
        
        // 获取sd卡可用空间
        long size = Environment.getExternalStorageDirectory().getFreeSpace();
        
        //格式化
        String info = Formatter.formatFileSize(this, size);
        Toast.makeText(this, "可用空间:" + info, 0).show();
        
        //将文件写入SD卡
        File file = new File(Environment.getExternalStorageDirectory(),"info.txt");
        FileOutputStream fos = new FileOutputStream(file);
        // 写入帐号密码
        fos.write((qq + "##" + pwd).getBytes());
        
        fos.close();
        Toast.makeText(this, "数据保存成功", 0).show();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(this, "数据保存失败", 0).show();
    }
    
    

    5.文件权限

    • Android 是基于Linux 的操作系统,因此Android 的文件权限其实就是Linux 的文件权限
    • 在Linux 中一个文件一共有三个组别:用户、群组、其它
    • 每个组包含三种权限:读r、写w、执行x ,也就是说一个文件共有9 个权限属性
    • 应用程序在data/data/自己包名/目录下创建的文件默认都是私有的, 别的应用程序是不可以访问的
    //openFileOutput可以将文件的权限修改为公共的
    public void getPublicFile(View view) {
        try {
            FileOutputStream fos = openFileOutput("public.txt",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
            fos.write("public".getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    相关文章

      网友评论

          本文标题:数据存储(上)

          本文链接:https://www.haomeiwen.com/subject/mwidtxtx.html