Все, что вам нужно сделать, это взять всю логику, зависящую от конкретного вида, от Activity to Fragment, а затем загрузить фрагмент в свою активность.
Например,
public class MainActivity extends Activity {
@InjectView(R.id.button)
public Button button;
@OnClick(R.id.button)
public void onButtonClick(View view) {
Toast.makeText(this, "Hello!", Toast.LENGTH_SHORT).show();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
}
}
Этот тип логики идет в
public class MainFragment extends Fragment {
@InjectView(R.id.button)
public Button button;
@OnClick(R.id.button)
public void onButtonClick(View view) {
Toast.makeText(this, "Hello!", Toast.LENGTH_SHORT).show();
}
@Override
public void onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
ButterKnife.inject(this, view);
return view;
}
}
И ваша активность должна отобразить этот фрагмент либо статически, либо динамически. Если вы идете динамичны, вам понадобятся следующие строки в деятельности:
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
if(savedInstanceState == null) {
fm.beginTransaction()
.add(R.id.container, new MainFragment())
.commit();
}
fm.addOnBackStackChangedListener(new OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
if(getSupportFragmentManager().getBackStackEntryCount() == 0) finish();
}
});
}
}
Если вы идете статичны, то вам необходимо указать фрагменты в макете XML для деятельности.
http://developer.android.com/guide/components/fragments.html#Adding