조각에서 수행되는 작업을 기반으로 활동 작업 표시 줄의 내용을 변경하는 방법에 대한 간단한 예제를 제공 할 수 있습니까? 내 의도 :Android : 조각에서 ActionBar 메뉴 항목 변경
정상 메뉴 항목 -> 조각에있는 일부 항목 이동 -> 메뉴 항목이 저장/삭제 버튼으로 변경됩니다.
첫 번째 충동은 활동과 프래그먼트 모두에서 브로드 캐스트 수신기를 크로스 토크로 설정하는 것이지만 이것이 맞는지 확실하지 않습니다.
조각에서 수행되는 작업을 기반으로 활동 작업 표시 줄의 내용을 변경하는 방법에 대한 간단한 예제를 제공 할 수 있습니까? 내 의도 :Android : 조각에서 ActionBar 메뉴 항목 변경
정상 메뉴 항목 -> 조각에있는 일부 항목 이동 -> 메뉴 항목이 저장/삭제 버튼으로 변경됩니다.
첫 번째 충동은 활동과 프래그먼트 모두에서 브로드 캐스트 수신기를 크로스 토크로 설정하는 것이지만 이것이 맞는지 확실하지 않습니다.
다음은 저에게 적합합니다. 나는 조각 안에 ListView.MultiChoiceModeListener
를 구현하는 사용자 정의 클래스가 : 당신이 감지하는 방법을 감안할 때
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
// Choose the correct Action Bar menu to display
int menu = myCondition == true ? R.menu.my_default_menu : R.menu.my_menu_2;
// Configure to use the desired menu
mode.getMenu().clear();
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(menu);
}
을 ListView.MultiChoiceModeListener
당신을 위해 작동하지 않을 수 확장, '조각에 뭔가가 이동', 그러나 희망이 메뉴를 변경하는 방법을 보여줍니다. 열쇠는 ActionMode
인스턴스에 대한 액세스 권한을 얻는 것입니다.
contextual action mode을 사용하고 싶습니다. 드래그 이벤트에서 작업 표시 줄의 내용을 사용자가 수행 할 작업과 관련된 메뉴 항목으로 바꿀 수있는 새로운 ActionMode를 시작합니다. 사용자가 작업을 선택하면 작업 모드가 끝나고 작업 표시 줄은 이전 상태로 돌아갑니다.
조각은 작업 표시 줄의 메뉴를 변경할 수 있습니다. 이를 위해 조각의 oncreate()
에 필요한 플래그를 추가해야합니다. setHasOptionsMenu(true);
조각이로드되면 활동과 마찬가지로 onCreateOptionsMenu(Menu menu, MenuInflater inflater)
에 전화를 겁니다. 그런 다음 메뉴를 변경하십시오.
메뉴를 전체적으로 조각으로 저장하고 변경할 때마다 변경 사항을 적용하십시오.
onAttach (활동 활동)를 사용하여 FragmentActivity에서 액션 바을 얻기 위해이를 시도해보십시오 액션 바 인스턴스 메뉴 당신과 함께 도움이 될 것이다 그러나 확실하게 도움이 될 것입니다 경우
이것은 가장 정확한 답입니다. –
확실하지가 .. 여기에 대해 얻을 수있는 방법 메서드에서. 모든
먼저이
를 수행 YourFragment 클래스 YourFragment의 한 OnCreate 방법에서 다음@Override
public void onAttach(Activity activity){
context = (YourFragmentActivity)activity;
super.onAttach(activity);
}
이
public class YourFragment extends Fragment {
private YourFragmentActivity context;
}
무시처럼 조각이 당신의 FragmentActivity의 전역 개체를 만들
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
...
android.support.v7.ActionBar actionBar = context.getSupportActionBar();
...
}
활동의 ActionMode 인스턴스는 어디에서 얻을 수 있습니까? – Neilers