2016-12-16 2 views
2

내 액티비티에 조각이 있고 조각에 자체 도구 모음이 있습니다. 이처럼 :조각 도구 모음에서 메뉴 항목을 설정하는 방법은 무엇입니까?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.hometsolutions.space.Fragments.ControlFragment"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/Setup_next_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      android:elevation="4dp" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view_setup_next" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_constraintTop_toBottomOf="@+id/setup_next_recycler" /> 

    </LinearLayout> 
</FrameLayout> 

나는 Setup_next_toolbar에 메뉴를 추가 할 :

여기

Image

은 조각의 레이아웃입니다. MainActivity 도구 모음에는 없습니다. onCreate

을 :

나는 조각에 이런 짓을 setHasOptionsMenu(true);

다음

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.Setup_next_menu, menu); 
} 

하지만 MainActivity의 tolbar에 메뉴를 추가했다. Setup_next_toolbar에 menuItem을 어떻게 설정할 수 있습니까?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    //TODO Add your menu entries here 
    inflater.inflate(R.menu.menu, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 
+0

내부

<android.support.v7.widget.Toolbar app:layout_collapseMode="pin" android:fitsSystemWindows="false" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="match_parent> <ImageView android:layout_marginRight="8dp" android:id="@+id/overflow_menu" android:clickable="true" android:background="?attr/selectableItemBackgroundBorderless" app:srcCompat="@drawable/overflow_menu" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true"/> </RelativeLayout> </android.support.v7.widget.Toolbar> 

. http://stackoverflow.com/a/34082236/5722385 – Mrinmoy

답변

-1

삽입 setHasOptionsMenu(true)이 시도 팝업 메뉴의 클릭 수. 조각

당신이 당신의 조각의() onCreateView에 (참) setHasOptionMenu를 추가 할 필요가
@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

//Other stuff 

    ImageView overflowMenuImageView = view.findViewById(R.id.overflow_menu); 
    overflowMenuImageView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      PopupMenu popupMenu = new PopupMenu(getActivity(), view); 
      popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
       @Override 
       public boolean onMenuItemClick(MenuItem item) { 
        if(item.getItemId() == R.id.menu_item_id){ 

         //Do your thing 

        } 
        return false; 
       } 
      }); 
      popupMenu.inflate(R.menu.my_menu); 
      popupMenu.show(); 
     } 
    }); 
} 
+0

나는 이것을 수행하고 활동 도구 모음에 메뉴를 추가했습니다. 이 이미지와 같은 조각 도구 모음에 추가 할 수 있습니까? https://i.imgur.com/fxFhJYT.png? –

-1

에서

+0

이것은 액티비티에서는 작동하지만, 조각에 대해서는 getMenuInflater()가 작동하지 않습니다. –

-1
Use this code in onCreate method. 

Mymenu mymenu; 

public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
} 

**And Override onCreateOptionsMenu() method and add Item Like this.** 
`@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    // TODO Add your menu entries here like 
    mymenu=menu.add("Menu 1") 
    mymenu=menu.add("Menu 2") 
    mymenu=menu.add("Menu 3") 
    mymenu=menu.add("Menu 3") 
    super.onCreateOptionsMenu(menu, inflater); 
}` 
+0

제가 말했듯이,이 코드는 제 조각을위한 것이며 조각 툴바에 메뉴를 추가하려고합니다. 이렇게 : i.imgur.com/fxFhJYT.png –

+0

그러면 onCreateOptionsMenu() 대신 onPrepareOptionsMenu()를 사용하는 것이 좋습니다. –

+0

http://stackoverflow.com/questions/32967874/show-different-menu-options-on-toolbar-for-activity-and-fragment –

0

당신은 도구 모음에서 이미지 뷰를 설정하고 이미지 뷰를 클릭하면 팝업 메뉴를 열 수 있으며, 그 메뉴 항목을 처리 : onCreate()

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 

} 
관련 문제