Android设计QQ界面以及保存数据到SD卡和内存的方法
1.首先设置QQ显示界面
界面上两个EditText两个TextView,一个选择框和一个按钮
2.设计步骤
①主页面设计
1 <TextView 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_content" 4 android:text="请输入QQ号码!" 5 /> 6 <EditText 7 android:layout_width="0dp" 8 android:layout_height="wrap_content" 9 /> 10 <TextView 11 android:layout_width="fill_parent" 12 android:layout_height="wrap_content" 13 android:text="请输入QQ密码!" 14 /> 15 <EditText 16 android:layout_width="0dp" 17 android:layout_height="wrap_content" 18 /> 19 <CheckBox 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:text="是否保存密码" 23 /> 24 <Button 25 android:layout_width="0dp" 26 android:layout_height="wrap_content" 27 android:text="Login" 28 />
②获取信息
为各控件添加地址信息
1 <EditText 2 android:id="@+id/et_qq"//为其添加地址信息 3 /> 4 <EditText 5 android:id="@+id/et_pwd" 6 /> 7 <CheckBox 8 android:id="@+id/cb_remember" 9 /> 10 <Button 11 android:onClick="login" 12 />
控件设置好为其添加属性,以及获得其值
当用户未输入账号和密码时或只输入账号和密码时,这时出现提醒“账号和密码不能为空”
这时要给按钮添加事件
public class MainActivity extends AppCompatActivity {
private static final String tag="tag";
private EditText et_qq;//创建变量
private EditText et_pwd;
private CheckBox cb_remember;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_qq = (EditText)findViewById(R.id.et_qq);//初始化变量固定写法
et_pwd = (EditText)findViewById(R.id.et_pwd);
cb_remember = (CheckBox)findViewById(R.id.cb_remember);}
public void login(View view){
String qq= et_qq.getText().toString();
String pwd = et_pwd.getText().toString();
if(TextUtils.isEmpty(qq)||TextUtils.isEmpty(pwd)){
Toast.makeText(this,"用户名密码不能为空",Toast.LENGTH_SHORT).show();//toast当用户名为空时,显示内容为“用户名密码不能为空”
}else{
//登录操作}
}
显示效果:
③在进程中查看是否选了“记住密码”
打印日志:
##日志的级别
log.v(“MainActivity”,“我是一个日志”);//v:verbose 提醒 黑色
log.d(“MainActivity”,“我是一个日志”);//d:debug 调试 蓝色
log.i(“MainActivity”,“我是一个日志”);//i:info 提醒 绿色
log.w(“MainActivity”,“我是一个日志”);//w:warn 警告 橙色
log.e(“MainActivity”,“我是一个日志”);//e:error 错误 红色
查看效果
未点击保存密码的效果:
点击保存密码的效果:
④将信息存储在文件中
此程序在手机上运行,这时时存储在手机上的根目录下的,但是根目录禁止写入,所以错误。这时保存信息到SD卡
容易被垃圾软件侵犯。
在AndroidManifest.xml中添加权限设置
结果:
打开Android Studio Tools—>Android—>Android Device Monitor报错:
报错内容为:
解决方法:
在任务管理器中,将打开的所有的monitor.exe进程全部关掉,重新打开就行了。
//读取用户保存的密码信息
1 try{ 2 File file = new File("/mnt/sdcard/info.txt");//外置SD卡的路径 3 FileInputStream fis = new FileInputStream(file); 4 BufferedReader br = new BufferedReader(new InputStreamReader(fis)); 5 String info = br.readLine(); 6 String qq=info.split("###")[0]; 7 String pwd=info.split("###")[1]; 8 et_qq.setText(qq); 9 et_pwd.setText(pwd); 10 } catch (Exception e){ 11 e.printStackTrace(); 12 }} 13 //读取用户保存密码的文件
效果如下:
点击保存密码之后,再次点进去之后之前的账户和密码还在
Android下数据存储:
*SD卡
1.声明写SD卡的权限(清单文件)
2.Environment.getExternalStorageDirectory()//获得当前SD卡文件下的目录
3.判断SD卡的状态,是否可以读
Environment.getExternalStorageState();
4.SD卡可用的情况下,但SD卡已满了,(判断SD卡的剩余空间)
1 Environment.getExternalStorageDirectory().getUsableSpace();//判断可用空间或者是
2.Environment.getExternalStorageDirectory().getFreeSpace();
本人菜鸟,只是自己的做的实验的心得,数据的存储没搞明白,等我搞明白了,再补一个