2013-09-29 140 views
1

我有一個FragmentActivity。 活動包含一個片段。
在片段中,有一個按鈕,當點擊一個imageview時會出現(View.VISIBLE)在中心。
我想要一個後退按鈕事件來檢查如果imageview是可見的,然後隱藏它,否則,繼續默認的後退按鈕事件。
由於FragmentActivity和Fragment是單獨的類。片段中沒有onBackPressed()。那我該怎麼做呢?我想處理Fragment類中的back事件。Android:FragmentActivity中的後退按鈕事件

回答

0
@Override 
public void onBackPressed() { 

    // If the fragment is here, let him handle it 
    ourFragment.someMethodWeveCreatedToHandleBackPressed(); 

    // If it was not handled by the method above, then let the super do his usual "back" 
    if (!handled){ 
     super.onBackPressed(); 
    } 
} 
+0

該活動可能包含不同的片段。那麼如何一個接一個地調用上面的方法呢? – jjLin

+0

http://stackoverflow.com/questions/6102007/is-there-a-way-to-get-references-for-all-currently-active-fragments-in-an-activi – Sean

-2

使用transaction.addToBackStack(空);

+0

它適用於我。 – Swetank

+1

它不會工作,因爲'ImageView'在同一個片段內。只有一個片段。 – yugidroid

0

你爲什麼不重寫onKeyDown方法在你的片段?

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // Check you image view visibility 
     if(yourImageView.getVisibility() == View.VISIBLE) { 
       yourImageView.setVisiblity(View.GONE); 
       return true; // This line is important to handle the event here and not in the next receiver 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

讓我知道它是否適用於您!