gpt4 book ai didi

java - 如何根据用户角色控制Java android应用程序中的组件可见性?

转载 作者:行者123 更新时间:2023-12-01 18:36:34 25 4
gpt4 key购买 nike

我正在实现 Android Java 应用程序,其中有两种类型的用户。他们每个人都有权使用部分应用程序功能,但不是全部。

我当前的实现包括每次用户重定向到同一 Activity 时设置该 Activity 内所有组件的可见性。示例:

protected void onCreate(Bundle savedInstanceState) {
if(!userLoggedIn()) {
// Set all visibilities
} else if (loggedUserType() == UserType.USER1) {
// Set all visibilities
} else {
// Set all visibilities
}
}

Android Java 应用程序中是否有标准方法说明如何处理此问题?如果没有,是否有比上面示例中所示的方法更好的方法?

最佳答案

你可以拥有一个fragment对于每个用户类型并在您的 Activity 中显示该 fragment 。在您的 Activity 布局中添加一个容器。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">

//rest of activty views

<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</RelativeLayout>

并根据用户类型创建并添加您的 fragment

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
ExampleFragment fragment;
if(!userLoggedIn()) {
fragment = new ExampleFragment1();
} else if (loggedUserType() == UserType.USER1) {
fragment = new ExampleFragment2();
} else {
fragment = new ExampleFragment3 ();
}
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();

这样您将拥有干净的架构,并且可以单独更改每个 fragment

关于java - 如何根据用户角色控制Java android应用程序中的组件可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com