android总结第一篇

来源:互联网 发布:声优聊天软件 编辑:程序博客网 时间:2024/05/01 19:02

先来看看效果图:




第一天:学习android的历史,以及收发短信


发送短信以及打电话的过程中,我们要注意给权限SEND_SMS  CALL_PHONE

同时有四种方法去监听按钮
最好的最常用的一种是直接


第一步:实现接口
implements OnClickListener


第二步:按钮监听
Button but_add_data=(Button) findViewById(R.id.but_add_data);
but_add_data.setOnClickListener(this);


第三步:实现onclick方法


第二天:主要学习五大布局,数据存储,如文件存储,sharePres,XML用PULL解析
(1)
五大布局中常用到的就是:相对布局,线性布局,帧布局


文字居中用gravity,按钮居中用layout_gravity
线性布局中有一个权值的weight的问题


如下:
<a weightSum=3>
<b weight=1>
</b>
<c>
</c>
</a>
那么b就会占1/3,其余的给别人,b只参考他的父元素


如果:父节点没有指名weight,b就是剩余的空间都是他的
<a>
<b weight=1>
</b>
<c>
</c>
</a>


(2)
数据存储,文件处理

A:第一种直接存储于我们的/data/data/包名/文件名.xxx下,或者/data/data/包名/cache/文件名.xxx,/data/data/包名/files/文件名.xxx
下面都是为了说明怎样写入这些文件路径而总结的。


上面的三种都不要权限,因为这没有涉及到SD卡。


为了程序更健壮,对于第一种,我们不应该直接写包名:这样可以得到包名this.getPackageName()
对于第二种就更加简单了/data/data/包名/cache/文件名.xxx,直接用getCacheDir(),如果我们想要写到缓存中,我们应该
自己构造一下:String path=getCacheDir()+"/"+"file.xxx"  或者  File f=new File(getCacheDir(),"filename.xxx");


Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录


如果我们想写到/data/data/包名/files/文件名.xxx,直接用下面代码
FileOutputStream outStream = this.openFileOutput("file.xxx", Context.MODE_PRIVATE);
outStream.write("asas".getBytes());
outStream.close();   
openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,
如果文件不存在,Android会自动创建它。创建的文件保存在/data/data/<package name>/files目录




B:写入SD,首先我们要去设定权限
// 挂载和卸载SDCard
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
// 写入外存储设备权限
android.permission.WRITE_EXTERNAL_STORAGE


if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
         File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录
         File saveFile = new File(sdCardDir, “itcast.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("传智播客".getBytes());
outStream.close();
}










(3)
XML的解析与存储



解析不多说,就是用下面的一个自己写的文件工具类

package com.ouyang.studentmanage.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.content.Context;import android.os.Environment;import android.util.Log;import android.util.Xml;import com.ouyang.studentmanage.domain.Student;/** * 工具类 * @author Administrator * */public class FileUtils {    static String encode="utf-8";        /**     * 保存数据     * @param context 上下文,由他得到包名     * @param stu_list  学生列表     * @throws IOException      */public static void save(Context context, List<Student> stu_list) throws IOException {   //SD卡是否能用String state=Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state)){    //这个path在我们应用包下的,不需要权限String path="/data/data/"+context.getPackageName()+"/stu_list.xml";////这个File是写入SD卡中的,需要权限//File f=Environment.getExternalStorageDirectory();//File file=new File(f,"stu_list.xml");//Log.i("Tag",file.getAbsolutePath());XmlSerializer serializer=Xml.newSerializer();FileOutputStream os=new FileOutputStream(path);serializer.setOutput(os, encode);serializer.startDocument(encode,true);serializer.startTag(null,"students");if(stu_list.size()>0){for(int i=0;i<stu_list.size();i++){String stu_name=stu_list.get(i).getStu_name();String stu_age=stu_list.get(i).getStu_age();String stu_sex=stu_list.get(i).getStu_sex();serializer.startTag(null,"student");serializer.attribute(null,"id",String.valueOf(i));serializer.startTag(null,"name");serializer.text(stu_name);serializer.endTag(null,"name");serializer.startTag(null,"age");serializer.text(stu_age);serializer.endTag(null,"age");serializer.startTag(null,"sex");serializer.text(stu_age);serializer.endTag(null,"sex");serializer.endTag(null,"student");}    }serializer.endTag(null,"students");serializer.endDocument();}}/** * 解析学生 * @param context 上下文 * @return * @throws Exception 异常抛出 */public static List<Student> recover(Context context) throws Exception { List<Student> stu_list=new ArrayList<Student>();String path="/data/data/"+context.getPackageName()+"/stu_list.xml";System.out.println(path);XmlPullParser parser=Xml.newPullParser();FileInputStream is=new FileInputStream(path);parser.setInput(is, encode);int enentType=parser.getEventType();Student stu=null;while(enentType!=XmlPullParser.END_DOCUMENT){String tagname=parser.getName();  switch(enentType)  {     case  XmlPullParser.START_TAG:     if("student".equals(tagname))     {    stu=new Student();    String id = parser.getAttributeValue(null,"id");    stu.setId(Integer.valueOf(id));         }else if("name".equals(tagname))     {     if(stu!=null)     {     stu.setStu_name(parser.nextText());     }     }else if("age".equals(tagname))     {     if(stu!=null)     {     stu.setStu_age(parser.nextText());     }      }else if("sex".equals(tagname))     {     if(stu!=null)     {     stu.setStu_sex(parser.nextText());     }      }     break;          case XmlPullParser.END_TAG:     if("student".equals(tagname))     {     stu_list.add(stu);     }     break;  }    enentType=parser.next();  } return stu_list;}}






0 0
原创粉丝点击