2013-08-05 2 views
4

Я работаю над одним из моих проектов Android, пытаясь уменьшить код внутри моей деятельности. В одном из них у меня есть CustomView (который только расширяет LinearLayout), который открывает диалоговое окно DialogFrament при нажатии. Теперь я реализую это, переопределяя onTouch() в своей деятельности и впоследствии открывая DialogFrament. Это выглядит примерно так:Откройте диалоговое окно DialogFragment из CustomView

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

Я хотел бы перенести процесс открытия DialogFragment от деятельности и в самой CustomView, но проблема у меня есть, что я не могу получить экземпляр из FragmentManager (с помощью getSupportFragmentManager()) в CustomView. Я планирую, или я должен придерживаться кода, который я работаю? Я делаю это, поэтому мой код выглядит более понятным и понятным.

+0

Связанные вопрос [здесь] (http://stackoverflow.com/questions/18072233/return-a-callback-open-a-dialogfragment-from-within-a-customview) – user1923613

ответ

9

в вашем пользовательском представлении вы можете позвонить по номеру getContext() (это будет ваша деятельность), чтобы затем его можно было отправить 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

Смежные вопросы