2016-09-04 2 views
10
나는 조각에 추가
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_filter) { 
     FragmentManager fm = getSupportFragmentManager(); 
     if (userType.equals("İş Arayan")) 
      filterDialogTitle = "İş İlanları Filtre"; 
     else if (userType.equals("Hizmet Arayan")) 
      filterDialogTitle = "Hizmet İlanları Filtre"; 
     FilterDialogFragment editNameDialogFragment = FilterDialogFragment.newInstance(filterDialogTitle); 
     editNameDialogFragment.show(fm, "fragment_edit_name"); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

에 전화 onOptionsItemSelected,하지만 난 t 내가 MainActivity에 추가하면, 그것은 작동하지만 난 조각에 전화를 원하는, 소위 '을 didn를. 내가 어떻게 할 수 있니?추가는 조각

답변

19

menu_item_to_handle_in_fragment 항목은 조각 클래스

을 클릭

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 

     case R.id.menu_item_to_handle_in_fragment: 
      // Do onlick on menu action here 
      return true; 
     } 
    return false; 
} 
활동 클래스

@Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      switch (item.getItemId()) { 

      case R.id.menu_item_to_handle_in_fragment: 
       return false; 
      } 
     return false; 
    } 
를 들어

2

조각을 만들 때 setHasOptionMenu(true)을 추가해야합니다.
이 옵션을 추가하면 조각 수명주기에서 onCreateOptionMenu() 및 onOptionItemSelected()가 호출됩니다.

이 단계를 수행

  • setHasOptionsMenu 당신의 조각에서 onCreate에서 (사실)() 메소드를 추가합니다.

  • 조각에있는 onCreateOptionsMenu (메뉴 메뉴, MenuInflater inflater) 및 onOptionsItemSelected (MenuItem item) 메소드를 재정의하십시오. 당신의 onOptionsItemSelected (MenuItem의 항목) 내부

  • 활동의 방법, 메뉴 항목 조치가 onOptionsItemSelected (MenuItem의 항목)에서 구현 조각의 방법이 될 것입니다 때 false를 반환해야합니다. 당신이 그런 setHasOptionsMenu(true)

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

    전화는 처리 할 수 ​​있다고 가정해야조각에서