Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ошибка в Preferences в Android 4.4 - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не редактируются свойства http://www.cyberforum.ru/android-dev/thread1015206.html
Почему то не редактируются свойства элементов в Properties? Это такой глюк или где-то стоит запрет на редактирование? Добавлено через 36 минут Стал разбираться - не редактируются свойства...
Программирование Android ListView не работает выбор элемента Доброго времени суток. Который день мучаюсь. Не знаю как поменять цвет ListView, так что бы не сбить работу выбора элемента при нажатии. Прочитал уже много тем, и ничего не помогает... что я делаю не... http://www.cyberforum.ru/android-dev/thread1014889.html
Как ровно наложить imageview на surfaceview Программирование Android
Не удается подогнать правильно размер эти двух view. Хочу чтобы фотография накладывалась на изображение с камеры, но фотография всегда получается меньше. Помогите, пожалуйста <?xml version="1.0"...
Программирование Android Подскажите чат разработчиков под Андроид (англ/рус - без разницы)
Сабж
Программирование Android Чем улучшить курсовую(браузер)? http://www.cyberforum.ru/android-dev/thread1014214.html
Люди добрые, подскажите пожалуйста чем можно улучшить курсовую и чего оригинального придумать? Ситуация такая- тема курсовой - "Браузер на андроид" - Браузер уже написан как таковой, но сегодня...
Программирование Android Как вывести текст айтема в ListView? Добрый вечер ув. Программисты! как вывести текст итема в листвью. Пробовал так: ls2.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void... подробнее

Показать сообщение отдельно
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598

Ошибка в Preferences в Android 4.4 - Программирование Android

22.11.2013, 10:08. Просмотров 1505. Ответов 2
Метки (Все метки)

Здравствуйте!
Не могу понять суть ошибки, на всех версиях Android 2.2+ программа выполнялась корректно, до выхода Kit kat...
У меня в PreferenceActivity делается проверка на версию Anddroid, а затем запускается либо Preferences with headers or just preferences... Так вот в Android 4.4 невозможно запустить Preferences с заголовками, проверку на версию убирал, пытался только для старших версий загрузить, то же самое...
Вот лог:
Кликните здесь для просмотра всего текста
11-22 00:46:14.821: D/dalvikvm(1069): GC_FOR_ALLOC freed 73K, 5% free 3333K/3484K, paused 59ms, total 60ms
11-22 00:46:14.841: D/(1069): HostConnection::get() New Host Connection established 0xb79f2ba8, tid 1069
11-22 00:46:15.071: W/EGL_emulation(1069): eglSurfaceAttrib not implemented
11-22 00:46:15.081: D/OpenGLRenderer(1069): Enabling debug mode 0
11-22 00:46:26.151: W/EGL_emulation(1069): eglSurfaceAttrib not implemented
11-22 00:46:28.851: D/AndroidRuntime(1069): Shutting down VM
11-22 00:46:28.861: W/dalvikvm(1069): threadid=1: thread exiting with uncaught exception (group=0xb3a22b90)
11-22 00:46:28.901: E/AndroidRuntime(1069): FATAL EXCEPTION: main
11-22 00:46:28.901: E/AndroidRuntime(1069): Process: com.contedevel.timetable, PID: 1069
11-22 00:46:28.901: E/AndroidRuntime(1069): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.contedevel.timetable/com.contedevel.timetable.settings.SettingActivity}: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.contedevel.timetable.settings.SettingActivity has not checked if fragment com.contedevel.timetable.settings.SettingGeneralFragment is valid.
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread.access$700(ActivityThread.java:135)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.os.Handler.dispatchMessage(Handler.java:102)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.os.Looper.loop(Looper.java:137)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread.main(ActivityThread.java:4998)
11-22 00:46:28.901: E/AndroidRuntime(1069): at java.lang.reflect.Method.invokeNative(Native Method)
11-22 00:46:28.901: E/AndroidRuntime(1069): at java.lang.reflect.Method.invoke(Method.java:515)
11-22 00:46:28.901: E/AndroidRuntime(1069): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-22 00:46:28.901: E/AndroidRuntime(1069): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
11-22 00:46:28.901: E/AndroidRuntime(1069): at dalvik.system.NativeStart.main(Native Method)
11-22 00:46:28.901: E/AndroidRuntime(1069): Caused by: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.contedevel.timetable.settings.SettingActivity has not checked if fragment com.contedevel.timetable.settings.SettingGeneralFragment is valid.
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.preference.PreferenceActivity.isValidFragment(PreferenceActivity.java:898)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.preference.PreferenceActivity.switchToHeaderInner(PreferenceActivity.java:1179)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.preference.PreferenceActivity.switchToHeader(PreferenceActivity.java:1199)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:545)
11-22 00:46:28.901: E/AndroidRuntime(1069): at com.contedevel.timetable.settings.SettingActivity.onCreate(SettingActivity.java:33)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.Activity.performCreate(Activity.java:5243)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-22 00:46:28.901: E/AndroidRuntime(1069): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
11-22 00:46:28.901: E/AndroidRuntime(1069): ... 11 more
11-22 00:46:35.781: I/Process(1069): Sending signal. PID: 1069 SIG: 9
...
11-22 00:48:23.931: D/(1218): HostConnection::get() New Host Connection established 0xb79f2080, tid 1218
11-22 00:48:24.101: W/EGL_emulation(1218): eglSurfaceAttrib not implemented
11-22 00:48:24.111: D/OpenGLRenderer(1218): Enabling debug mode 0
11-22 00:48:40.291: W/EGL_emulation(1218): eglSurfaceAttrib not implemented
11-22 00:48:42.081: D/dalvikvm(1218): GC_FOR_ALLOC freed 129K, 6% free 3560K/3768K, paused 53ms, total 69ms
11-22 00:48:42.271: D/AndroidRuntime(1218): Shutting down VM
11-22 00:48:42.271: W/dalvikvm(1218): threadid=1: thread exiting with uncaught exception (group=0xb3a22b90)
11-22 00:48:42.321: E/AndroidRuntime(1218): FATAL EXCEPTION: main
11-22 00:48:42.321: E/AndroidRuntime(1218): Process: com.contedevel.timetable, PID: 1218
11-22 00:48:42.321: E/AndroidRuntime(1218): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.contedevel.timetable/com.contedevel.timetable.settings.SettingActivity}: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.contedevel.timetable.settings.SettingActivity has not checked if fragment com.contedevel.timetable.settings.SettingGeneralFragment is valid.
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread.access$700(ActivityThread.java:135)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.os.Handler.dispatchMessage(Handler.java:102)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.os.Looper.loop(Looper.java:137)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread.main(ActivityThread.java:4998)
11-22 00:48:42.321: E/AndroidRuntime(1218): at java.lang.reflect.Method.invokeNative(Native Method)
11-22 00:48:42.321: E/AndroidRuntime(1218): at java.lang.reflect.Method.invoke(Method.java:515)
11-22 00:48:42.321: E/AndroidRuntime(1218): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-22 00:48:42.321: E/AndroidRuntime(1218): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
11-22 00:48:42.321: E/AndroidRuntime(1218): at dalvik.system.NativeStart.main(Native Method)
11-22 00:48:42.321: E/AndroidRuntime(1218): Caused by: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.contedevel.timetable.settings.SettingActivity has not checked if fragment com.contedevel.timetable.settings.SettingGeneralFragment is valid.
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.preference.PreferenceActivity.isValidFragment(PreferenceActivity.java:898)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.preference.PreferenceActivity.switchToHeaderInner(PreferenceActivity.java:1179)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.preference.PreferenceActivity.switchToHeader(PreferenceActivity.java:1199)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:545)
11-22 00:48:42.321: E/AndroidRuntime(1218): at com.contedevel.timetable.settings.SettingActivity.onCreate(SettingActivity.java:33)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.Activity.performCreate(Activity.java:5243)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-22 00:48:42.321: E/AndroidRuntime(1218): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
11-22 00:48:42.321: E/AndroidRuntime(1218): ... 11 more


Я не понимаю, что он просит переопределить, у меня OnCreate переопределена, и что за not checked?
Вот активити:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package com.contedevel.timetable.settings;
 
import java.util.Calendar;
import java.util.List;
 
import com.contedevel.timetable.MainActivity;
import com.contedevel.timetable.R;
import com.contedevel.timetable.helpers.SettingsHelper;
 
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.view.MenuItem;
 
public class SettingActivity extends PreferenceActivity {
    //Initialization of variables
    SettingsHelper sh;
    Context context;
    
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        //Check Android version
        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
            addPreferencesFromResource(R.xml.old_activity_preferences);
            Preference lvTimetableMode = (Preference) 
                    findPreference(getString(R.string.key_timetablemode));
            final Preference sOddWeek = (Preference) 
                    findPreference(getString(R.string.key_oddweek));
            sh = new  SettingsHelper(this);
            
            context = this;
            
            if(sh.getMode() == 1) {
                sOddWeek.setEnabled(true);
            }
            else {
                sOddWeek.setEnabled(false);
            }
            
            lvTimetableMode.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
 
                @Override
                public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    // TODO Auto-generated method stub
                    if (newValue.toString().length() > 0) {
                        if(newValue.toString().equalsIgnoreCase("1")) {
                            sOddWeek.setEnabled(true);
                        }
                        else {
                            sOddWeek.setEnabled(false);
                        }
                        return true;
                    }
                    return false;
                }});
            
            sOddWeek.setOnPreferenceClickListener(new OnPreferenceClickListener() {
 
                @Override
                public boolean onPreferenceClick(Preference preference) {
                    // TODO Auto-generated method stub
                    Calendar c = Calendar.getInstance();
                    DatePickerDialog dpDialog = 
                            new DatePickerDialog(context, null, 
                                    2013, 8, 1);
                    dpDialog.setTitle(R.string.title_dialog_datepicker);
                    dpDialog.show();
                    return true;
                }});
        }
        else {
            ActionBar actionBar = getActionBar();
            actionBar.setDisplayHomeAsUpEnabled(true);
        }
    }
    
    //Headers for Android v11+
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public void onBuildHeaders (List<Header> target) {
        loadHeadersFromResource(R.xml.activity_preferenceheaders, target);
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            switch (item.getItemId()) {
            case android.R.id.home:
                Intent intent = new Intent(this, MainActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                return true;
            default:
                return super.onOptionsItemSelected(item);
            }
        }
        return super.onOptionsItemSelected(item);
    }
}

P.S. буду очень признателен за помощь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru