【发布时间】:2012-11-27 15:14:12
【问题描述】:
我需要在我的应用程序中显示首选项屏幕。我已经设法实现了这一点,它适用于 Ice-Cream Sandwich 和更新的设备,但不适用于 Gingebread 和 Froyo 等旧设备。我使用 ActionBarSherlock 作为兼容性库来支持旧设备。
这是包含首选项屏幕的Activity 的代码:
public class Settings extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new Preferences())
.commit();
}
}
这是我的活动中调用首选项屏幕的示例代码:
public class Trend extends SherlockActivity {
@Override
public boolean onOptionsItemSelected(MenuItem itmMenuitem) {
if (itmMenuitem.getItemId() == R.id.search) {
startActivity(new Intent(getBaseContext(), Settings.class));
return true;
}
}
}
当用户尝试在旧设备上打开首选项屏幕时,我收到一条异常消息:
java.lang.NoSuchMethodError: com.mridang.stupidapp.Settings.getFragmentManager
at com.mridang.stupidapp.Settings.onCreate(Settings.java:15)
我应该如何修改我的首选项屏幕以使用旧设备(即 API 8)?谢谢。
【问题讨论】:
-
我在这里为此创建了一个库:github.com/AndroidDeveloperLB/MaterialPreferenceLibrary。另外,我不确定,但我认为谷歌也允许一些东西:plus.google.com/+AndroidDevelopers/posts/9kZ3SsXdT2T
标签: java android android-activity actionbarsherlock android-preferences