系统:基于app的大学生时间管理系统
分为移动端和服务器端
移动端:Android Studio
服务器端:Eclipse
记录一下目前为止的问题
这里是关于android端的:
因为采用了Fragement切换页面,所以出现了一系列问题,主要是采用Fragement时与Activity的代码有一定的差距。
注意getActivity()的使用
示例(登录时获取用户名并保存,在其他页面重新调用用户名)
登录页面获取用户名和密码:
//声明
SharedPreferences mySharedPreferences = getSharedPreferences("UserInfo",MODE_PRIVATE);
SharedPreferences.Editor editor = mySharedPreferences.edit();
//获取用户名和密码
editor.putString("userName",userName.getText().toString());
editor.putString("userCode",userCode.getText().toString());
//提交
editor.apply();
在别的页面调用获取的用户名:
SharedPreferences preferences = getActivity().getSharedPreferences("UserInfo", Activity.MODE_PRIVATE);
//前面是名称,对应登录页面putString,后面是默认值,当传值为空时会使用后面默认值
String username = preferences.getString("userName", "999");
//可以直接调用username去使用,这里是要向服务器端传值
requestParams.add("userName",username);
后端代码:
package com.febzy.appServlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/TimeRecordServlet")
public class TimeRecordServlet extends HttpServlet {
private static final long serialVersionUID = 6792396567928634227L;
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/plain; charset=UTF-8");
request.setCharacterEncoding("UTF-8");
System.err.println(request.getParameter("bigType"));
System.err.println(request.getParameter("smallType"));
System.err.println("username:"+request.getParameter("userName"));
PrintWriter printWriter = response.getWriter();
printWriter.print("您好Android客户端!");
printWriter.flush();
printWriter.close();
}
}
输出结果:
两个4是bigType和smallType的值,用于其他功能
username是上文获取的 用户名
要注意
SharedPreferences preferences = getActivity().getSharedPreferences("UserInfo", Activity.MODE_PRIVATE);
在activity中是不用getActivity的,直接getSharePreferences就可以了
这里由于是Fragement,所以需要加一步getActivity()