2017-09-23 17 views
0

ナビゲーション・ドロワー・テンプレート(アンドロイド・スタジオの実装)を見ていて、それをカスタマイズしようとしています。私は、このアクティビティのための4つの他のXMLファイルと一緒にドロワー用のメニューXMLファイルがあることがわかりますが、これはレイアウトxmlとは異なるようですが、利用できるオプションははるかに限定されています(メニュー項目、検索項目、スイッチ項目)。代わりにスピナーウィジェット(またはその問題のウィジェット)を代わりに追加するにはどうすればよいですか? 編集:ええ、その種の説明が難しいです。 Image shows the layout I want to modify このメニューには、インポート、ギャラリーなどの参照のみが含まれています。xml Picture shows the XML editor for the このように、画像1の緑色の部分を通常のxmlレイアウトファイルではなくメニューファイルですか? 何らかの理由でデフォルトでメニューファイルが使用されました。ナビゲーション・ドロワーのボタンをスピナーに切り替える方法

+0

あなたの質問は、質問をunderstand.Editし、いくつかのコードまたはあなたが作りたいものの画像を追加するのは難しいのですか? – Xenolion

答えて

0

あなたの質問を読んで理解したことは、ナビゲーションドロワーにスピナーを追加したいということです。そうなら、これが役に立ちます。
はい、NavigationDrawerにスピナーを直接追加する方法はありませんが、スピナーを含む別のXMLファイルを既存のmenu.xmlにリンクすることができます。これを使って。

  • まず、(あなたがmenu.xmlで を追加しました項目と同じ)spinner1名前のレイアウトを作成し、第二

    <item 
        android:id="@+id/spinner1" 
        app:actionLayout="@layout/spinner1" 
        android:icon="@android:drawable/spinner_image" 
        android:title="Use it or leave it" 
        /> 
    
  • 別のレイアウトファイルへのリンクを追加

    <?xml version="1.0" encoding="utf-8"?> 
        <Spinner 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/spinner" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_gravity="center_vertical" 
        android:gravity="center_vertical" /> 
    
  • 最後に、スピナーをJavaファイルにリンクします。

    Spinner spinner = (Spinner) navigationView.getMenu().findItem(R.id.spinner1).getActionView(); 
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_spinner_dropdown_item,yourarraylist); 
        spinner.setAdapter(arrayAdapter); 
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
        @Override 
        public void onItemSelected(AdapterView<?> parent, View view, int i, long id) { 
         Toast.makeText(YouActivity.this,yourarraylist[i],Toast.LENGTH_SHORT).show(); 
        } 
        @Override 
        public void onNothingSelected(AdapterView<?> parent) { 
        //DO something 
        } 
    }); 
    
+0

はい。これは私がやりたいことです – Holmes

関連する問題