ユーザーのタイプ(管理者またはユーザー)に基づいてナビゲーションドロワーに特定のオプションを表示したいとします。 管理者は、より少ないアクティビティを表示するために、ユーザーを除くすべてのオプションを表示します。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. 結果アイテムにあるカテゴリの種類に基づいてJavascriptでフィールドを非表示にして表示
- 2. Androidのレイアウトに基づいてアクションバーを非表示にする方法
- 3. テキストフィールドのユーザー入力に基づくチェックボックスを非表示/表示
- 4. Ionic2 - コントローラの表示方法に基づいて表示/非表示ボタン
- 5. Yii2 - ユーザーの種類に基づいてコントローラーに要求を移植します。
- 6. ユーザー/ロールの偽装に基づいて色相の各ハイブデータベースを非表示/表示する方法
- 7. ユーザーの所在地に基づいてFacebookのタブを非表示にする
- 8. ユーザーのチェックボックスの選択に基づいてドロップダウンボックスを表示するか非表示にする
- 9. SQL Server日時とユーザーの種類に基づいてレコードを選択
- 10. ファイルのタイプに基づいてアクションを表示/非表示
- 11. ドロップダウンリストの値に基づいてコントロールを表示/非表示
- 12. divをラジオボタンの選択に基づいて表示/非表示
- 13. セルの値に基づいてExcelを非表示にする
- 14. セレクタの2つのセットに基づいて表示非表示 - 一緒に動作させる方法?
- 15. URLに基づいてHTMLコードを表示するか非表示にする
- 16. データを表示しているユーザーに基づいて列を非表示にする
- 17. Djangoのドロップダウンメニューからの選択に基づいてフォームフィールドを表示および非表示にする方法
- 18. 番号に基づいてクレジットカードの種類を取得
- 19. DIVの内容URLに基づいて非表示/表示
- 20. 機種モデルに基づいて異なるナビゲーションバーを表示
- 21. ユーザーの対話に基づいてWebフォームフィールドを表示する方法
- 22. タクソンとユーザーの役割に基づいて製品を表示する方法
- 23. セッション値に基づいてHTML要素を非表示にする方法
- 24. バインディング結果に基づいてコントロールを非表示にする方法
- 25. div.style.displayを使用する "ブロック":2つのチェックボックスに基づいて非表示/非表示にする "なし"
- 26. android getsharedPreferences他のアクティビティを非表示にする方法がわからない
- 27. ユーザーの場所に基づいて天気を表示する
- 28. $ _GETに基づいてDivを表示/非表示
- 29. CSS - CheckBoxに基づいて要素を表示/非表示
- 30. 選択に基づいてdivを表示/非表示