2017-02-20 2 views
0

여러보기가있는 조각이 있습니다. 다시 버튼을 잡으려고합니다. 특정보기가 선택되어 있다면 버튼 누름을 생략하고 특정보기가 선택되지 않은 경우 뒤로 버튼을 누르는 것과 같이 해당 작업을 수행하십시오. 뒤로 버튼을 잡으려면 아래 코드를 사용했습니다.조건부로 프래그먼트의 버튼을 뒤로 가져옵니다.

View v = inflater.inflate(R.layout.home_page, paramViewGroup, false); 
v.setFocusableInTouchMode(true); 
    v.requestFocus(); 
    v.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       if (fab.isSelected()) { 
        hideMenu(); 
        fab.setSelected(!fab.isSelected()); 
       } 
       // else 
       //  How back button do its habitual job? 
       // 
       return true; 
      } else { 
       return false; 
      } 
     } 
    }); 

뒤로 버튼이 일상적인 작업을 수행하는 코드는 어떻게 변경합니까?

현재 코드를 사용하면 뒤로 버튼은 홈 페이지에서 앱을 종료하지 않습니다.

+1

getActivity(). onBackPressed; ' – Belzebub

+1

간단히 대답은'onBackPressed();를 호출하는 것입니다. –

답변

0

작업 범위에서 onBackPressed() 메서드를 재정의하고 onOptionsItemSelected 메서드에서 호출해야합니다.

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    // Do your things. 
} 

public void method() 
{ 
    onBackPressed(); 
} 

당신의 onBackPressed 방법으로 일부 복잡한 로직을 추가 단지 매개 변수를 사용하여 다른 하나를 만들려면.

public void myOnBackPressed(int param1, String param2) 
{ 
    // Do your complex logic. 
    onBackPressed(); 
} 

public void method() 
{ 
    myOnBackPressed(myInt, myString); 
} 
0

코드에 return true을 설정합니다. 다시 버튼을 처리하는 것을 의미합니다. 뒤로 버튼을 누를 필요가 없습니다. onKey() 방법으로 onBackPressed()으로 전화하여 외부 버튼을 다시 송신 할 수 있습니다. 또는 조각의 onBackPressed()에있는 뒤로 버튼을 처리 할 수 ​​있습니다.

관련 문제