2016-06-15 3 views
1

У меня есть MainActivity с фрагментом. В MainActivity я загружал этот макет:просмотр фрагмента просмотра по id основного вида

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.MainLayout); 
} 

В MainLayout, является Float Действие Кнопка с идентификатором «ВСБ»

На мой взгляд, фрагмент класса, я загрузить макет вид фрагмента, как это :

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     FragementView = inflater.inflate(R.layout.FragmentViewLayout, container, false); 
     FloatingActionButton fab = (FloatingActionButton) FragementView .findViewById(R.id.fab); 

     return FragementView; 
    } 

Теперь я хотел бы получить в классе вид фрагмента, ФАБ (найти по идентификатору) , но это будет нулевой объект.

Где моя ошибка?

+0

FragementView является вид? –

+0

да, это вид – Stack108

ответ

1

Если вам нужно, чтобы получить представление о деятельности в использование фрагмента getActivity().

кавычки документы

В частности, фрагмент может получить доступ к экземпляру Activity с getActivity() и легко выполнять такие задачи, как найти вид в макете активность:

FloatingActionButton fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); 

https://developer.android.com/guide/components/fragments.html

+0

большое спасибо :) – Stack108

0

Ваш FloatActionButton находится в MainLayout макет не FragmentViewLayout макет.
Таким образом, вы должны получить его в вашем Activity как

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.MainLayout); 
    ... 
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
} 
0

Включите FloatingActionButton в вашем FragmentViewLayout

FragmentViewLayout.xml

<RelativeLayout 
... 

//include FloatingActionButton here 
... 
/> 
Смежные вопросы