下面是检查用户是否登录的代码,因此如果用户被登录,那么他将看到“greeting-layout”,否则“registration-layout”。
根据用户的状态(已注册/未注册),我想显示不同的“menuItems”或“Menu”。
我是否需要为已注册和未注册的用户制作不同的类?
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
/* check User's "STATUS" is logged-in or not and display screen according to "STATUS" */
SharedPreferences prefs = getSharedPreferences("CRUMBS",MODE_PRIVATE);
if (prefs.getString("logged", "").toString().equals("logged")) {
setContentView(R.layout.crumbs_view_logged);
//Display menu items > " Logout " & " Profile "
}else{
setContentView(R.layout.crumbs_view_default);
//Display menu items > "Register" & " Login "
}
}
提前致谢:)
答案 0 :(得分:1)
只需夸大不同的menu.xml
个文件。有点像
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if (loggedIn) {
inflater.inflate(R.menu.registered,menu);
}
else {
inflater.inflate(R.menu.nonRegistered,menu);
}
return true;
}
注册用户res/menu/registered.xml
和其他人.../nonRegistered.xml
。对于常见菜单项,您需要提供相同的ID。
答案 1 :(得分:-1)
你想要这样的东西吗?
package test;
class Main {
protected void onCreate() {
final IUser user;
if ("logged".equals("logged")) {
user = new RegisteredUser();
} else {
user = new UnRegisteredUser();
}
user.showMenu();
}
}
public interface IUser {
public void showMenu();
}
class RegisteredUser implements IUser {
@Override
public void showMenu() {
//Display menu items > " Logout " & " Profile "
}
}
class UnRegisteredUser implements IUser {
@Override
public void showMenu() {
//Display menu items > "Register" & " Login "
}
}