gpt4 book ai didi

android - Android N 预览版 PreferenceActivity 中的 ClassCastException

转载 作者:行者123 更新时间:2023-11-30 01:19:34 26 4
gpt4 key购买 nike

我正在新的 Android N 预览版中测试该应用程序,但我在偏好 Activity 方面遇到了一个问题(在 MarshMallow 中 - Android 6.0 和更低版本工作正常)。

我正在使用:'com.android.support:appcompat-v7:22.2.1''com.android.support:design:22.2.1'

这是错误:

java.lang.ClassCastException: android.widget.FrameLayout cannot be cast to android.widget.LinearLayout
at com.myApp.PreferenceActivity.setUpNestedScreen(PreferenceActivity.java:1606)
at com.myApp.PreferenceActivity.onPreferenceTreeClick(PreferenceActivity.java:1594)
at android.preference.Preference.performClick(Preference.java:1005)
at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:214)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1155)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3087)
at android.widget.AbsListView$3.run(AbsListView.java:4002)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:770)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)

这是指向错误的代码:

public void setUpNestedScreen(PreferenceScreen preferenceScreen) {
final Dialog dialog = preferenceScreen.getDialog();

Toolbar bar;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
LinearLayout root = (LinearLayout) dialog.findViewById(android.R.id.list).getParent(); //Here is the line 1606
View topView = LayoutInflater.from(this).inflate(R.layout.preference_toolbar, root, false);
root.addView(topView, 0); // insert at top
bar = (Toolbar) topView.findViewById(R.id.toolbar);

bar.setTitle(preferenceScreen.getTitle());

bar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});

}
}

最佳答案

像下面这样尝试修复 android N(API 级别 24)中的问题

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // For API level 24 - Android N 
LinearLayout root = (LinearLayout) dialog.findViewById(android.R.id.list).getParent().getParent();
View topView = LayoutInflater.from(this).inflate(R.layout.preference_toolbar, root, false);
root.addView(topView, 0); // insert at top
}

关于android - Android N 预览版 PreferenceActivity 中的 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com