有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

我当前的实现包括每次将用户重定向到同一个活动时,设置一个活动内所有组件的可见性。例如:

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

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


共 (1) 个答案

  1. # 1 楼答案

    每个用户类型可以有一个fragment,并在活动中显示该片段。 在活动布局中添加一个容器

    <?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>
    

    并根据用户类型创建和添加片段

    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();
    

    这样,您将拥有干净的体系结构,并且可以分别更改每个片段