--------Mainactivity、---------
blic class MainActivity extends AppCompatActivity {
private EditText name;//设置一个全局变量
private EditText psd;
private Button loginBtn;
private CheckBox check;
private List<Smss> smsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到
name = (EditText) findViewById(R.id.name_text);
psd = (EditText) findViewById(R.id.psd_text);
loginBtn = (Button) findViewById(R.id.login_button);//ctrl+alt+f然后选择private,就变成了公共的变量
check = (CheckBox) findViewById(R.id.check);
//用sharedPrefernecces取存储的值
SharedPreferences sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);
String name = sharedPreferences.getString("nam", "");//第二个参数是默认值
String pwd = sharedPreferences.getString("pwd", "");//第二个参数是默认值
//TODO 这个标记是凸显出
// Map<String,String> maps= null;
// try {
// maps = UserInoUtils.readInfo();
// } catch (FileNotFoundException e) {
//
// }
// if(maps!=null){
// String nam=maps.get("nam");
// String pwd=maps.get("pwd");
// name.setText(nam);
// psd.setText(pwd);
// }
//******************************************
smsList = new ArrayList<Smss>();//集合
//往数组中添加元素
for (int i = 0; i < 100; i++) {
Smss smss = new Smss();
smss.setAddress("ad" + i);
smss.setBody("bo" + i);
smss.setDate("da" + i);
//吧smss对象夹到集合中
smsList.add(smss);
}
//********************************************
//放在assets文件夹下的资源不会被proguard(代码混淆)压缩;
// 通过上下问获取资产数据
InputStream in=getAssets().open("weather.xml");//weather.xml是assets中的文件
}
//登陆的按钮点击事件
public void login(View v) {
String uName = name.getText().toString().trim();//获取文本内容,trim是去掉两边空格
String pwd = psd.getText().toString().trim();
if (TextUtils.isEmpty(uName) || TextUtils.isEmpty(pwd)) {
Toast.makeText(MainActivity.this, "用户名或密码错误", 1).show();//弹出提示
} else {
if (check.isChecked()) {
//判断sd卡的状态是否可用;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
// Boolean result=UserInoUtils.saveInfo(MainActivity.this,uName,pwd);//保存用户名密码到本地文件中
//使用sharedPreference来保存密码
SharedPreferences sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);//context直接调用sharedpreference方法得到一个实例,会生成prefer——shared文件夹下生成一个config.XML的文件
SharedPreferences.Editor ed = sharedPreferences.edit();//获取编辑器
ed.putString("nam", uName);//吧名字放入编辑器
ed.putString("pwd", pwd);
ed.commit();//提交编辑器
}
}
}
//
***********************************************************************
自定义XML文件
// StringBuffer buffer=new StringBuffer();//创建sb对象
// buffer.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");//拼装头部
// buffer.append("<smss>");// 拼接根节点头部
// for (Smss sms :smsList){
// buffer.append("<sms>");
// //添加address节点
// buffer.append("<address>");
// buffer.append(sms.getAddress());
// buffer.append("</address>");
//
// //添加body节点
// buffer.append("<body>");
// buffer.append(sms.getBody());
// buffer.append("</body>");
//
// //添加date节点
// buffer.append("<date>");
// buffer.append(sms.getDate());
// buffer.append("</dat>");
// buffer.append("</sms>");
// }
//
// buffer.append("<smss>");// 拼接根节点结尾
//
// //吧xml写到sd卡中
// File file=new File(Environment.getExternalStorageDirectory().getPath(),"autoDe.xml");
// FileOutputStream fos=new FileOutputStream(file);
// fos.write(buffer.toString().getBytes());//Stringbuffer先要转成string类型的
// fos.close();
//**********************************************************
//用系统提供的XML类创建xnl文件
XmlSerializer serilizer = Xml.newSerializer();//通过XML的工具类获取对象
//设置序列化器参数
File file = new File(Environment.getExternalStorageDirectory().getPath(), "xuliehua.xml");
FileOutputStream outS = new FileOutputStream(file);
serilizer.setOutput(outS, "utf-8");
serilizer.startDocument("utf-8", true);//文档开头,true表示独立,不需要其他文件依赖
serilizer.startTag(null, "smss");//设置节点,第一个是参数是命名空间,第二个是节点名
for (Smss sms : smsList) {
serilizer.startTag(null, "sms");
serilizer.startTag(null,"address");
serilizer.text(sms.getAddress());
serilizer.endTag(null,"address");
serilizer.endTag(null, sms);
}
serilizer.endTag(null, "smss");
serilizer.endDocument();//文档结尾
outS.close();
}
}
-----------------ParseXML---------------
public class ParseXML extends Object {
public static List<XMLParse> parseXML(InputStream in) throws IOException, XmlPullParserException {
XmlPullParser pull = Xml.newPullParser();
XMLParse xp = null;
pull.setInput(in, "utf-8");//设置参数
int type = pull.getEventType();//获取事件类型
List<Smss> smsList;
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG://解析开始标签
if ("weather".equals(pull.getName())) {//这里是更根节点,getname是获取节点名称
smsList = new ArrayList<Smss>();//集合
} else if ("chanel".equals(pull.getName())) {//根节点下第一级节点
xp = new XMLParse();//javabean对象
String id = pull.getAttributeValue(0);//chanel中有一个id属性
xp.setId(id);
} else if ("city".equals(pull.getName())) {
String city = pull.nextText();//取标签中的数据
xp.setCity(city);
}
break;
case XmlPullParser.END_TAG:// 解析结束标签
if("chanel".equals(pull.getName())){
smsList.add(xp); //吧javaBean对象存到集合中
}
break;
}
type = pull.next();//不停的向下解析
}
return null;
}
}
----------------Smss--------------
public class Smss extends Object {
private String address;
private String body;
private String date;
// 自动生成 set,get方法;方式一:Code-->Generate 方式二:通过快捷键Alt+Insert 这时,在弹出的对话框中就可以选择你所需要的对应的东东了。
public void setAddress(String address) {
this.address = address;
}
public void setBody(String body) {
this.body = body;
}
public void setDate(String date) {
this.date = date;
}
public String getAddress() {
return address;
}
public String getBody() {
return body;
}
public String getDate() {
return date;
}
}
----------UserInfoUtil----------
public class UserInoUtils {
//保存密码,吧数据写到文本中
public static boolean saveInfo(Context context, String uname, String pwd) throws FileNotFoundException {
String result = uname + "##" + pwd;
File file = new File("/data/data/com.example.lambo.secondad/info.txt");//路径写死。不建议
// //外部存储sd卡的路径:/mnt/sdcard/可以通过environment获取sdcard的路径
// String sdPath= Environment.getExternalStorageDirectory().getPath();//获取sd卡的路径,读取外部存储,需要设置权限;
File sdFile=Environment.getExternalStorageDirectory();//获取SD卡的文件;
Long sdt= sdFile.getTotalSpace();//获取sd卡的总大小;是以字节数返回;
// Long sdU= sdFile.getUsableSpace();//获取sd卡可使用大小
// //吧字节转换成MB
// String formatTotal= Format.format(this,sdt);
// String path=context.getFilesDir().getPath();//这句系统默认会创建一个File路径;
//
// File file = new File(path,"info.txt");//在File文件夹下回创建一个info.txt的文件
// FileOutputStream fos = new FileOutputStream(file);
//通过上下文获取FileOutputStream,一句话相当于上面四句话
FileOutputStream fos=context.openFileOutput("info.txt",0);//表示私有,或者用MODEL_PRIVATE、可追加MODEL_APPEND
//linuxx 下权限的标记是10位,第一位是文件类型(d标识文件夹,-表示文件),2-4为标识当前用户的权限,可以用三个二进制位得到的10进制数字表示(2位是r可读,-不可读,3位w可写,-不可写,4位x可执行,-不可执行);5-7位是用户组的其他成员的权限,8-10位是其他用户权限
//cmd---->adb shell--->出现#,chmod 777 innfo.txt
try {
fos.write(result.getBytes());//吧数据写入到文件中
} catch (IOException e) {
}
try {
fos.close();
} catch (IOException e) {
}
return true;
}
public static Map<String,String> readInfo(Context context) throws FileNotFoundException {
Map<String,String> maps=new HashMap<String,String>();
//File file=new File("/data/data/com.example.lambo.secondad/info.txt");
// FileInputStream input=new FileInputStream(file);
//通过context直接获取FileInputStream,这一句话详相当于上面的两句话
FileInputStream input=context.openFileInput("info.txt");
BufferedReader buf=new BufferedReader(new InputStreamReader(input));
String content= null;//读取一行数据
try {
content = buf.readLine();
} catch (IOException e) {
e.printStackTrace();
}
//切割字符串成数组
String[] splits=content.split("##");
String name=splits[0];
String pwd=splits[1];
//吧数组中的元素放到map中;
maps.put("nam",name);
maps.put("pwd",pwd);
try {
input.close();//关闭流
} catch (IOException e) {
}
return maps;
}
}
-------XMLParse-------
public class XMLParse extends Object {
private String id;
private String temp;
private String pm;
public void setCity(String city) {
this.city = city;
}
public String getCity() {
return city;
}
private String city;
public void setId(String id) {
this.id = id;
}
public void setTemp(String temp) {
this.temp = temp;
}
public void setPm(String pm) {
this.pm = pm;
}
public String getId() {
return id;
}
public String getTemp() {
return temp;
}
public String getPm() {
return pm;
}
@Override
public String toString() {
return "XMLParse{" +
"id='" + id + '\'' +
", temp='" + temp + '\'' +
", pm='" + pm + '\'' +
", city='" + city + '\'' +
'}';
}
}