2014-01-08 6 views
0

Я новичок в концепции фрагментов. В моем приложении мне нужно сохранить пользовательские настройки. Я прошел через this doc. Подготовил файл настроек xml и PreferenceFragment. Все хорошо до сих пор. Моя проблема в том, что я должен добавить следующий код в моем onCreate() методе моего MainActivityPreferenceFragment display

getFragmentManager().beginTransaction() 
      .replace(android.R.id.content, new SettingsFragment()) 
      .commit(); 

Это показывает на главном экране. Но я хочу запустить этот метод одним нажатием кнопки

onSettingsClicked(){ 
     // launch preferces screen 
    } 

И я хочу отобразить его как отдельный экран. Как я могу это сделать?

ответ

1

Вам необходимо реализовать концепцию fragmentTransaction. Вам необходимо сделать следующее:

  1. Создайте новый Fragment.xml, чтобы отобразить кнопку.
  2. Вызвать новый фрагмент из onCreate();
  3. Получить кнопку на изображении фрагмента.
  4. On Button onclick прослушиватель заменяет фрагмент с помощью параметра SettingFragment().
    Готово!

Заканчивать this FragmentTransaction Tutorial, это поможет Вы-

Выполните следующие изменения, как -

// Code not accurate, may be some syntax error 
@Override 
public void onCreate() 
{ 
// super and other stuff 

getFragmentManager().beginTransaction() 
      .replace(android.R.id.content, new NewFragment()) 
      .commit(); 

Button btn = (Button)findViewById(R.id.button01); 
btn.setOnClickListener(new OnClickListener(){ 

@override 
public void onClick(View v) 
{ 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 

      ft.replace(android.R.id.content, new new SettingsFragment()) 
      .commit(); 
} 

}); 


} 
+0

Позвольте мне попробуйте код ... – saa

+0

выглядит хорошо. Этот фрагмент добавляет текущую активность. Но я хочу отобразить это предпочтение как SubActivity – saa

+0

Фрагмент всегда добавляется в текущую активность. Фрагмент предназначен для этой цели. Вы можете делать то, что ищете, правильно определяя основную компоновку. добавьте тег '' в ваш основной макет. для отображения дополнительного представления. у вас есть моя точка зрения. – Yup

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