Как обрабатывать OnClick во фрагментах

Это моя первая попытка на Фрагменты, и я не могу обрабатывать андроид: onClick

У меня есть кнопка внутри моего фрагмента XML, как это

<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/save_keywords_button" android:id="@+id/save_keywords" android:layout_marginTop="340dp" android:background="#FF2E7D32" android:textColor="#FFFFFF" android:typeface="normal" android:onClick="myLogic" /> 

Я искал много результатов и не могу получить точное решение для обработки события onClick.

Мой вопрос: как я могу получить идентификатор моей кнопки и написать метод myLogic. FindViewById () не работает в фрагментах и ​​где следует писать метод? Во фрагменте или в моей деятельности?

OnClickListener подходом будет внедрение OnClickListener в ваш класс фрагмента и переопределение onCreateView в вашем фрагменте, где вы назначаете слушателя на свою кнопку.

onClick атрибут onClick в ваш XML-макет, ваша активность при загрузке будет искать элемент в активности, а не фрагмент. Это вызовет исключение.

Я бы предложил прочитать некоторую иерархию фрагментации, чтобы понять, когда можно получить доступ к элементам в вашем фрагменте.

 public class StartFragment extends Fragment implements OnClickListener{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_start, container, false); Button b = (Button) v.findViewById(R.id.save_keywords); b.setOnClickListener(this); return v; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.save_keywords: ... break; } } } 

Ссылка с: здесь

android:onClick="myLogic" не будет вызывать метод myLogic внутри фрагмента. OnClickListener этого используйте OnClickListener для обработки этого типа событий.

См. Приведенные ниже ссылки

Лучший способ реализовать View.OnClickListener в android

http://developer.android.com/reference/android/view/View.OnClickListener.html

Если вам нужно получить представление в fragmen, вы можете сделать это getView().findViewById(R.id.foo); Только после onCreateView() . И если вы укажете onClick в xml, вам не нужно указывать какую-либо ссылку на этот метод в вашей программе, просто реализуйте этот метод в своей деятельности.

Попробуйте добавить метод

 public void myLogic(View v)