我有一个用于登录页面的 Web 服务。但我想通过使用相同的网络服务登录不同的用户,如 Admin 和 Employee。
如果管理员登录显示一项活动 A. 管理员:公司:xxx 登录 ID:AAA 密码:BBB
如果员工登录显示另一个活动 B. 公司:YYY 登录 ID:CCC 密码:DDD
任何人都可以帮助我..请问怎么做?
谢谢你。
检查下面的代码它可能会帮助你。
包 com.Barcode_Dynamic;
public class Login_activity extends Activity {
private EditText exit_user;
private EditText exit_pswd;
private Button btnlogin;
private Button btncancle;
private String Url_s = null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
boolean LOGIN_BOOL = false;
private Button btnBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
exit_user = (EditText) findViewById(R.id.edit_user);
exit_pswd = (EditText) findViewById(R.id.edit_pswd);
btnlogin = (Button) findViewById(R.id.btn_login);
btncancle = (Button) findViewById(R.id.btn_cancle);
btncancle.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
exit_user.setText("");
exit_pswd.setText("");
}
});
btnlogin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
final String USER = exit_user.getText().toString();
final String PSWD = exit_pswd.getText().toString();
if (USER.length() > 0 && PSWD.length() > 0) {
CharSequence contentTitle = getString(R.string.app_name);
final ProgressDialog progDailog = ProgressDialog.show(
Login_activity.this, contentTitle,
"...", true);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//showAlert("Import completed.");
if(LOGIN_BOOL)
{
showAlert("Login succes");
startActivity(new Intent(Login_activity.this, emailSettingFile.class));
}
}
};
new Thread() {
public void run() {
try {
nameValuePairs.add(new BasicNameValuePair("username", ""
+ USER));
nameValuePairs.add(new BasicNameValuePair("password", ""
+ PSWD));
InputStream is1 = call_Http();
String str = getResult(is1);
if (str != null) {
meth_parse_json(str);
}
} catch (Exception e) {
// TODO: handle exception
}
handler.sendEmptyMessage(0);
progDailog.dismiss();
}
}.start();
} else {
showAlert("Please Enter Username & Password");
}
startActi();
}
});
}
protected void startActi() {
// TODO Auto-generated method stub
if(LOGIN_BOOL)
{
}
}
private InputStream call_Http() {
InputStream is = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Url_s
+ "/login_service.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse responce = httpclient.execute(httppost);
HttpEntity entity = responce.getEntity();
is = entity.getContent();
} catch (Exception e) {
// TODO: handle exception
}
return is;
}
private String getResult(InputStream is1) {
String result = null;
// TODO Auto-generated method stub
try {
BufferedReader bufr = new BufferedReader(new InputStreamReader(is1,
"iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
sb.append(bufr.readLine() + "\n");
String line = "0";
while ((line = bufr.readLine()) != null) {
sb.append(line + "\n");
}
is1.close();
result = sb.toString();
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
private void meth_parse_json(String str) {
// TODO Auto-generated method stub
Log.d("JSON :", "" + str);
try {
JSONObject job1 = new JSONObject(str);
// JSONArray details = job1.getJSONArray("details");
String a = (String) job1.get("details");
Log.d("JSON :", "" + a);
boolean bool = Boolean.parseBoolean(a);
if (bool) {
LOGIN_BOOL = true;
} else {
LOGIN_BOOL = false;
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
上面的 android 代码你必须创建用于登录的 web 服务。这只是如何做到这一点。
在 meth_parse_json 方法中,您必须检查这是用于公司登录还是员工登录。
我假设你有 mysql 的知识。
如果这对您有帮助,请使其正确。
我想您有一个用于登录的 Web 服务的数据库。使用两个字段创建另一个名为组或角色的表。表的 sql 脚本可能如下所示:
create table users (
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
);
create table user_roles (
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key (user_name, role_name)
);
现在只需检索用户拥有的角色并决定他是否可以访问活动。