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

Где в Фрагменте инициализировать доступ к базе? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android ArrayIndexOutOfBoundsException http://www.cyberforum.ru/android-dev/thread874609.html
Есть лог. Понимаю, что ошибка в строке 31, но там скобка. В чём ошибка? java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex/com.ex.Activity}:...
Программирование Android Разпознавание чисел. З чего начать? Надо реализовать программу для распознавания чисел на какие наведена камера. Подскажите з чего можно начать http://www.cyberforum.ru/android-dev/thread874366.html
Программирование Android Аналоговые часы с "заводом" стрелок касанием
Всем привет! Захотелось для самообразования написать обычный будильник, но время сигнала которого задаётся следующим образом: На экране отображается аналоговый циферблат, и пользователь пальцем...
Можно ли оформить AlertDialog в виде функции? Программирование Android
Помогите новичку! :) С Делфи перехожу на Яву Создал класс, внутри процедуру для диалога Да-Нет. Успешно вызывается, но... public static int res = 0; ... AlertDialog.Builder quitDialog =...
Программирование Android Клиент-серверная архитектура на основе сокетов http://www.cyberforum.ru/android-dev/thread873959.html
Есть такой код клиента под андроид. Сервер написан на си++. Подключаю ноут и телефон в одну сеть. Сервер работает точто правильно, но возникает вопрос, все ли правильно с клиентом - андроидом? ...
Программирование Android Маска ввода для EditText Здравствуйте. А можно как то задать маску ввода для текстового поля? Ну например, вводим сумму денег в EditText и формат должен быть типа "#.00" - то есть после точки не больше двух цифр. И если... подробнее

Показать сообщение отдельно
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
22.05.2013, 18:48  [ТС]
Рассказываю всё подробно.
Хочу вывести данные в List View. Я делаю так:

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
public class MyFragment2 extends ListFragment {
 
    private static final String TABLE_MY_DB_TOP = "myDBTop";
    private static final String KEY_ID = "id_top";
    private static final String KEY_CATEGORY = "category";
    private static final String KEY_TITLE = "title";
    private static final String CATEGORY_CINEMA = "Cinema";
    public static final String LOG_TAG = "My_LOGER";
 
 
    private ArrayList<String> friends =  new ArrayList<String>();
    private ListView mListView;
    
    int myI;
    
    DBHelperSqLite dbOpenHelper;
    private SQLiteDatabase database;
 
    
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        
        ListTopImageAdapter mAdapter = new ListTopImageAdapter(getActivity(),
                friends);
        mListView.setAdapter(mAdapter);
        super.onActivityCreated(savedInstanceState);
 
        }
 
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
        View myView = inflater.inflate(R.layout.my_fragment_screen2,
                container, false);
        mListView = (ListView) myView.findViewById(android.R.id.list);
 
        return myView;
 
    }
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
    }
    
    //Извлечение элементов из базы данных
        private void fillFreinds() {
            friends = new ArrayList<String>();
            
             dbOpenHelper = new DBHelperSqLite(getActivity());
                database = dbOpenHelper.getReadableDatabase();
              //Все, база открыта!
                
            Cursor friendCursor = database.query(TABLE_MY_DB_TOP,
                                                 new String[] 
                                                 {KEY_ID, KEY_CATEGORY, KEY_TITLE},
                                                 KEY_CATEGORY + "= ?", new String[] {CATEGORY_CINEMA}, null, null
                                                 , KEY_TITLE);
            
            friendCursor.moveToFirst();
            if(!friendCursor.isAfterLast()) {
                do {
                    String name = friendCursor.getString(2);
                    friends.add(name);
                } while (friendCursor.moveToNext());
            }
            friendCursor.close();
        }
    
        
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
 
    }
 
    // при клике на кнопку в первом фрагменте, запускаеться это метод и выполняет метод  fillFreinds();
    // метод для принятия данных из другого фрагмента.
    public void getMyIndex(int myIndex) {
        // index принят
        try {
            myI = myIndex;
            System.out.println("Вот этот мой Index " + myI);
            if (myI == 1) {
               
                    //метод
                 fillFreinds();
                 
                System.out.println("1 fragment ");
 
            } else {
                System.out.println("не получилось :( там 1 нет = ");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("myIndex пришедший равен " + myIndex);
        }
    }
}
но у меня в ListView ничего не выводит, а в лог ошибки:

05-22 14:28:04.687: W/System.err(11325): java.lang.NullPointerException
05-22 14:28:04.687: W/System.err(11325): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
05-22 14:28:04.687: W/System.err(11325): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158)
05-22 14:28:04.687: W/System.err(11325): at by.soft.my.Fragment2.fillFreinds(MyFragment2.java:662)
05-22 14:28:04.687: W/System.err(11325): at by.soft.my.Fragment2.getMyIndex(MyFragment2.java:703)
05-22 14:28:04.687: W/System.err(11325): at by.soft.my.Fragment1$1.onClick(myFragment1.java:41)
05-22 14:28:04.687: W/System.err(11325): at android.view.View.performClick(View.java:2408)
05-22 14:28:04.687: W/System.err(11325): at android.view.View$PerformClick.run(View.java:8816)
05-22 14:28:04.687: W/System.err(11325): at android.os.Handler.handleCallback(Handler.java:587)
05-22 14:28:04.697: W/System.err(11325): at android.os.Handler.dispatchMessage(Handler.java:92)
05-22 14:28:04.697: W/System.err(11325): at android.os.Looper.loop(Looper.java:123)
05-22 14:28:04.697: W/System.err(11325): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-22 14:28:04.697: W/System.err(11325): at java.lang.reflect.Method.invokeNative(Native Method)
05-22 14:28:04.697: W/System.err(11325): at java.lang.reflect.Method.invoke(Method.java:521)
05-22 14:28:04.697: W/System.err(11325): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-22 14:28:04.697: W/System.err(11325): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-22 14:28:04.697: W/System.err(11325): at dalvik.system.NativeStart.main(Native Method)


если я помещаю это в onCreate:

Java
1
2
3
4
5
dbOpenHelper = new DBHelperSqLite(getActivity());
database = dbOpenHelper.getReadableDatabase();
 
//и запуск метода 
 fillFreinds();
то в ListView всё отображается, но это происходит автоматически. А мне нужно чтобы это происходило по нажатию кнопки.

вот класс SQLiteOpenHelper:

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
class DBHelperSqLite extends SQLiteOpenHelper {
 
     public static final String LOG_TAG = "my log";
    
    
   public DBHelperSqLite(Context context) {
     // конструктор суперкласса
     super(context, "myDBTop", null, 1);
   }
 
   @Override
   public void onCreate(SQLiteDatabase db_top) {
     Log.d(LOG_TAG, "--- onCreate database ---");
     // создаем таблицу с полями
     db_top.execSQL("create table myDBTop ("
         + "id integer primary key autoincrement," 
         + "id_top text,"
         + "category text,"
         + "title text,"
         + "updated_at text,"
         + "desc text,"
         + "content_count text" + ");");
   }
 
   
   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
   }
 }
очень ожидаю помощи.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.