ユーザーのタイプ(管理者またはユーザー)に基づいてナビゲーションドロワーに特定のオプションを表示したいとします。 管理者は、より少ないアクティビティを表示するために、ユーザーを除くすべてのオプションを表示します。Android - ユーザーの種類に基づいていくつかのアクティビティを非表示にする方法
-1
A
答えて
0
ナビゲーションのドロワー項目をユーザーの種類に応じてプログラマチックに追加します。
つまり、通常のユーザーまたは管理者のユーザーがそれぞれ引き出し項目の配列を読み込むとします。 NavigationViewの
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Your contents -->
<android.support.design.widget.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_non_admin" />
</android.support.v4.widget.DrawerLayout>
テイク通知app:menu
の属性:
0
使用NavigationView
続きを読むそれについてここ
NavigationView | Android Developersは、だからあなたのレイアウトXMLは次のようになります。あそこに自分の活動に続いて非管理者
のための一般的なメニュー項目を設定し、ナビゲーションビューへの参照を取得し、次の操作を行います。これを行うには
NavigationView nav = (NavigationView) findViewById(R.id.navigation);
// check if user is admin
if (user.isAdmin()) { // use your own logic to check if user is admin
nav.inflateMenu(R.menu.menu_admin); // supposing you have created the admin menu too
}
0
一つの方法は、にすべてのオプションを置くことですメニューリソースファイル(管理者だけが表示するオプションを含む)を表示して、「通常の」ユーザーに表示されないものをプログラムで隠します。たとえば、次のように
menu_nav.xml:あなたの活動のonCreate()
で
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/user_admin"
android:icon="@drawable/ic_user_admin"
android:title="@string/title_user_admin" />
<item
android:id="@+id/sales"
android:icon="@drawable/ic_sales"
android:title="@string/title_sales" />
<item
android:id="@+id/profile"
android:icon="@drawable/ic_profile"
android:title="@string/title_profile" />
<item
android:id="@+id/map"
android:icon="@drawable/ic_map"
android:title="@string/title_map" />
</group>
</menu>
そして、あなたはすべてのメニュー項目のためにそれを行います
navigationView.getMenu().findItem(R.id.user_admin).setVisible(false);
を呼び出すその後
navigationView = (NavigationView) findViewById(R.id.nav_view);
を呼び出した後あなたは隠されたい。
関連する問題
- 1. ノードJS - ユーザーの種類に基づいてユーザーのリストを表示
- 2. 結果アイテムにあるカテゴリの種類に基づいてJavascriptでフィールドを非表示にして表示
- 3. Androidのレイアウトに基づいてアクションバーを非表示にする方法
- 4. テキストフィールドのユーザー入力に基づくチェックボックスを非表示/表示
- 5. ユーザーの種類に基づいた角度4の動的ヘッダー
- 6. JQueryのステップ:ユーザーの入力に基づいて追加のステップを表示/非表示にする方法
- 7. Ionic2 - コントローラの表示方法に基づいて表示/非表示ボタン
- 8. Yii2 - ユーザーの種類に基づいてコントローラーに要求を移植します。
- 9. ユーザー/ロールの偽装に基づいて色相の各ハイブデータベースを非表示/表示する方法
- 10. 動的に列を非表示にするユーザーの入力に基づいて
- 11. ユーザーの所在地に基づいてFacebookのタブを非表示にする
- 12. ユーザーロールに基づいてJavaのタブを非表示にする方法
- 13. 条件に基づいてグリッドビューの列を非表示にする方法は?
- 14. ユーザーのチェックボックスの選択に基づいてドロップダウンボックスを表示するか非表示にする
- 15. SQL Server日時とユーザーの種類に基づいてレコードを選択
- 16. divをラジオボタンの選択に基づいて表示/非表示
- 17. チェックボックスの値に基づいてクラスを表示/非表示Jquery
- 18. ファイルのタイプに基づいてアクションを表示/非表示
- 19. ドロップダウンリストの値に基づいてコントロールを表示/非表示
- 20. ユーザーIDに基づいてdivを非表示にしますか?
- 21. セルの値に基づいてExcelを非表示にする
- 22. プロパティに基づいてアンドロイドのテキストビューを非表示にする
- 23. セレクタの2つのセットに基づいて表示非表示 - 一緒に動作させる方法?
- 24. URLに基づいてHTMLコードを表示するか非表示にする
- 25. データを表示しているユーザーに基づいて列を非表示にする
- 26. Djangoのドロップダウンメニューからの選択に基づいてフォームフィールドを表示および非表示にする方法
- 27. Woocommerceの商品メタに基づくお支払い方法を非表示
- 28. WooCommerceの商品タイプに基づくお支払い方法を非表示
- 29. 番号に基づいてクレジットカードの種類を取得
- 30. DIVの内容URLに基づいて非表示/表示