2016-01-27 2 views
1

Я пытаюсь разработать приложение для Android с использованием фрагментов, и я наткнулся на проблему, пытаясь использовать Butterknife для привязки представлений и использования аннотации @OnClick.ButterKnife Bind in Fragment с использованием разных макетов

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

Мой onCreateView выглядит примерно следующий код:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
View rootView = null; 
if(settings) 
{ 
    rootView = inflater.inflate(R.layout.settings_view, container, false); 
} else { 
    rootView = inflater.inflate(R.layout.sync_view, container, false); 
} 
return rootView; 

}

Так же я создал свой метод @Onclick кнопки для выхода из системы

@OnClick(R.id.btnSettingsLogout) 
    public void logout() { 
     Toast.makeText(getActivity(), "Button was pressed!", Toast.LENGTH_SHORT).show(); 
    } 

и добавил ButterKnife.bind(this, rootView); до конца мой метод onCreateView befure Я возвращаю rootView.

Проблема заключается в том, что теперь, когда я раздувать мои настройки просмотра все работает и я поздоровался с тостами сообщение всякий раз, когда я нажимаю мою кнопку выхода из системы, но когда я раздувать мои синхронизации аварий вид приложения из-за следующим исключением:

java.lang.RuntimeException: Unable to bind views for si.vitez.testapp.DetailFragment 

Можно ли вводить оба вида, поэтому приложение не будет терпеть крах без матраса, какой из двух видов будет завышен?

ответ

1

вы должны использовать @Nullable аннотация для вас метод.

@Nullabale 
@OnClick(R.id.yourId) 
public void onClickMethod(){ 
// your code 
} 

см. here для получения дополнительной информации об этом.

+0

Спасибо, работает как шарм. –