2013-08-05 2 views
4

내 Android 프로젝트 중 하나에서 작업 중이며 내 액티비티 내 코드를 줄이려고합니다. 그것들 중 하나에서, 클릭 할 때 DialogFrament를 여는 CustomView (LinearLayout을 확장 한 것)가 있습니다. 자, 내가 구현하는 방법은 onTouch() 작업을 무시하고 그 후 거기에서 DialogFrament를 여는 것입니다.CustomView 내에서 DialogFragment 열기

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_UP) { 
     if (v.getId() == mCustomView.Id()) { 
      mDialogFragment.show(mFragmentManager, ""); 

내가 활동에서하고있는 CustomView 자체에 멀리 DialogFragment를 여는 과정을 이동 좋아하지만 것, 내가 가진 문제는 내가 인스턴스를 얻을 수 있다는 것입니다 : 그것은 다음과 같이 보입니다 FragmentManager의 (getSupportFragmentManager() 사용하여) CustomView에서. 내가 계획하고있는 것입니까, 아니면 제가 작업 한 코드를 고수해야합니까? 내 코드가 더 깨끗해 보이고 이해하기 쉽도록이 작업을 수행하고 있습니다.

+0

관련 질문 [여기] (http://stackoverflow.com/questions/18072233/return-a-callback-open-a-dialogfragment-from-within-a-customview) – user1923613

답변

9

사용자 정의보기에서 (귀하의 활동이 될 수 있음)으로 전화를 걸면 android.support.v4.app.FragmentActivity으로 전송하고 getSupportFragmentManager()으로 전화 할 수 있습니다.

이렇게해야합니다.

android.support.v4.app.FragmentActivity fragmentActivity = (android.support.v4.app.FragmentActivity) getContext(); 
FragmentManager fm = fragmentActivity.getSupportFragmentManager(); 
+0

대단히 감사합니다! 나는 다른 질문 [여기] (http://stackoverflow.com/questions/18072233/return-a-callback-open-a-dialogfragment-from-within-a-customview) – user1923613