Android 如何在PreferenceActivity中使用ActionBar?
我有一个android应用程序,它的Android 如何在PreferenceActivity中使用ActionBar?,android,Android,我有一个android应用程序,它的usersetingsactivity源自PreferenceActivity。打开此活动时,不显示任何菜单栏 为了在设置屏幕的顶部显示“栏”或“动作栏”,我在google中搜索了“查找”和“操作栏”。因为第一个答案似乎过时了,所以我尝试了第二个链接中的建议,但它不起作用。因此,我再次发布这个问题。。以下是我正在使用的代码片段: preferences.xml(我只添加了android.support.v7.widget.Toolbar部分): 但是,我得到以
usersetingsactivity
源自PreferenceActivity
。打开此活动时,不显示任何菜单栏
为了在设置屏幕的顶部显示“栏”或“动作栏”,我在google中搜索了“查找”和“操作栏”。因为第一个答案似乎过时了,所以我尝试了第二个链接中的建议,但它不起作用。因此,我再次发布这个问题。。以下是我正在使用的代码片段:
preferences.xml
(我只添加了android.support.v7.widget.Toolbar
部分):
但是,我得到以下错误:
Caused by: java.lang.ClassCastException: android.support.v7.widget.Toolbar cannot be cast to android.preference.Preference
在标记线上。如果没有这两个文件中添加的部分,应用程序确实可以工作,但是没有(操作)栏
这里有什么问题吗?试试这个。使用AppCompatActivity扩展您的活动
然后添加工具栏。请参阅此处:-首选项活动现在已被弃用。在任何其他活动中使用PreferenceFragment,它可以从PreferenceActivity以外的任何父活动扩展而来可能重复的,哦,你已经找到我的问题了。你也试过了吗?是的,我找到了你的问题。但正确的解决方案是什么?我应该盲目地尝试所有不同的可能性和组合吗?好吧,我以我自己的答案结束了这个案例。我建议使用较新的首选项支持库:因为我似乎是一个绝对的初学者,我不能使用这些电子邮件信息……这是我的答案,可能会对您有所帮助。如果没有一些代码示例,你的答案对我来说毫无用处。我是一个绝对的初学者,我不知道在哪里放置
首选片段
,也不知道如何更改所有其他代码以使其按照您的建议工作……请给出一个代码示例,说明如何准确更改我的代码。我是一个初学者,你提供的链接中的信息在我看来就像天体物理计算会出现在你面前。。。
public class UserSettingActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent();
Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.xml.preferences, root, false);
root.addView(bar, 0); // insert at top
bar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences); // <<-- ERROR HERE
// doing something here
}
}
}
Caused by: java.lang.ClassCastException: android.support.v7.widget.Toolbar cannot be cast to android.preference.Preference