我的Android学习笔记(2)

因为Java和Android调用API方式都是面向对象的,所以很多东西特别难记忆,我整理在这里,希望大家少走弯路,也方便自己查阅~

本文由Lance.Moe原创,多数内容属于主观见解,难免有错漏之处,欢迎跟帖回复指出我的错误,大家共同学习~

1.Toast弹出气泡的使用

1
Toast.makeText(getApplicationContext(),"这是弹出的内容,推荐字符串使用R文件定义的",Toast.LENGTH_LONG).show();

前两个参数没啥好说,第三个参数可以填Toast里提供的一些常数,LENGTH_LONG存活时间比较长,另外要注意的就是不要忘记show()出来~

2.短信发送

实现代码:

1
2
3
4
5
6
7
            String number = "10086"; //指定收件人号码
            String msg = "移动你好!"; //信息内容
            SmsManager smsmanager1 = SmsManager.getDefault(); //新建短信类
            ArrayList<String> msgArray = smsmanager1.divideMessage(msg);  //自动拆分短信内容,分条发送,因为短信字数有上限,下面就用for挨个发送
            for (String text : msgArray) {
                smsmanager1.sendTextMessage(number,null,text,null,null);
            }

3.电话拨打

首先我们先声明拨打电话的权限:

1
<uses-permission android:name="android.permission.CALL_PHONE" />

实现代码:

1
2
3
4
5
6
                String mobileNum = "10086"; //指定播出号码
                Intent intent1 = new Intent(); //新建意图类
                intent1.setAction("android.intent.action.CALL"); //指定动作为电话
                //intent1.addCategory("android.intent.category.DEFAULT"); //这句不写默认就已经声明过DEFAULT
                intent1.setData(Uri.parse("tel:" + mobileNum)); //将号码填入意图
                startActivity(intent1); //执行意图

4.文件读写(保存在内部储存)

文件保存的实现代码:

1
2
3
4
5
        String filename = "lancemoe.txt"; //指定文件
        String context = "安卓学习很艰辛~"; //指定文件内容
        FileOutputStream outStream = context1.openFileOutput(filename,Context.MODE_PRIVATE);
        outStream.write(context.getBytes());
        outStream.close();

Context.MODE_PRIVATE这个参数可以换成其他的,比如MODE_APPEND是文件尾追加模式。

文件读取的实现代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    public String read(String filename) throws Exception {
        FileInputStream inStream = context1.openFileInput(filename); //打开文件流
        ByteArrayOutputStream outStream = new ByteArrayOutputStream(); //内存缓冲区
        byte[] buff1 = new byte[1024]; //缓冲区
        int len = 0;
        while((len = inStream.read(buff1)) != -1){
            outStream.write(buff1,0,len); //写入内存缓冲
        }
        byte[] data1 = outStream.toByteArray(); //读取内存缓冲
        inStream.close();
        return new String(data1); //转换为字符串
    }

5.文件读写(保存在外部储存)

外部储存读写需要声明权限:

1
2
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

文件保存的实现代码:

1
2
3
4
5
6
        String filename = "lancemoe.txt"; //指定文件
        String context = "安卓学习很艰辛~"; //指定文件内容
        File file = new File(Environment.getExternalStorageDirectory(),filename); //获取SD卡
        FileOutputStream outStream = new FileOutputStream(file);
        outStream.write(context.getBytes());
        outStream.close();

读取同理~

Environment.getExternalStorageDirectory()是获取外部储存路径的API,最好不要写类似于"mnt/sdcard"这种绝对路径。

6.读取assets路径下的资源

此方法适用于AndroidStudio,注意assets文件夹应当与res同级。

1
InputStream xml1 = this.getClass().getClassLoader().getResourceAsStream("assets/lance.xml");

今天就先写这么多~下期再见

备份自:https://bbs.ntrqq.net/thread-12440-1-1.html