我正在使用带有三个选项卡的ActionBar开发一些应用程序,其中一个是设置选项卡。
PreferencesFragment加载我的首选项xml文件,那么如何将PreferenceFragment
添加到ActionBar
Tab?
就像这个皮毛:
这是一个添加三个标签的主要活动,我已经成功添加了两个简单的片段标签但是RreferenceFragment开始出现问题
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActionBar actionBar = this.getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab settings = actionBar.newTab();
settings.setText("Settings");
settings.setTabListener(new SettingsFragment());
actionBar.addTab(settings);
Tab control = actionBar.newTab();
control.setText("Controller");
control.setTabListener(new ControlFragment());
actionBar.addTab(control);
Tab information = actionBar.newTab();
information.setText("information");
information.setTabListener(new InformationFragment());
actionBar.addTab(information);
}
例如,这是一个ControlFragment类(第二个标签页)
public class ControlFragment extends Fragment implements ActionBar.TabListener {
private Fragment fragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setContentView(R.layout.control_fragment);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction frgTransaction) {
//TODO
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction frgTransaction) {
fragment = new ControlFragment();
frgTransaction.add(android.R.id.content, fragment);
frgTransaction.attach(fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction frgTransaction) {
frgTransaction.remove(fragment);
}
}
这是一个设置主要问题的SettingsFragment类
public class SettingsFragment extends PreferenceFragment implements ActionBar.TabListener {
private Activity act;
private Context context;
private Fragment fragment;
public SettingsFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_settings);
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
fragment = new SettingsFragment();
arg1.add(android.R.id.content, fragment);
arg1.attach(fragment);
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
应用程序崩溃,因为它需要处理PreferenceFragment
。
我如何补充它?我知道TabHost,但我使用Action Bar。
答案 0 :(得分:0)
您必须使用v13支持库才能实现此目的。希望我帮忙。