首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据用户角色控制Java android应用中组件的可见性?

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

Stack Overflow用户
提问于 2020-02-02 21:54:25
回答 1查看 85关注 0票数 0

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

我目前的实现包括每次用户被重定向到同一个活动时,在该活动中设置所有组件的可见性。示例:

代码语言:javascript
运行
复制
protected void onCreate(Bundle savedInstanceState) {
    if(!userLoggedIn()) {
        // Set all visibilities
    } else if (loggedUserType() == UserType.USER1) {
        // Set all visibilities
    } else {
        // Set all visibilities
    }
}

在android java应用程序中有没有标准的方法来说明如何处理这个问题?如果没有,有没有比上面的例子更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2020-02-03 00:02:50

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

代码语言:javascript
运行
复制
<?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>

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

代码语言:javascript
运行
复制
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();

通过这种方式,您将拥有干净的体系结构,并且可以单独更改每个片段

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60026769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档