Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
22.05.2013, 18:01     Где в Фрагменте инициализировать доступ к базе? #1
Где в Фрагменте инициализировать доступ к базе?

пробую так в Create:
Java
1
2
dbOpenHelper = new DBHelperSqLite(getActivity());         
database = dbOpenHelper.getReadableDatabase();
а ошибка at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 00:35  [ТС]     Где в Фрагменте инициализировать доступ к базе? #21
у меня все фрагменты содержит одна активность. Только не совсем понятно куда выше приведенный код писать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 00:38     Где в Фрагменте инициализировать доступ к базе? #22
Цитата Сообщение от Stylish2013 Посмотреть сообщение
Только не совсем понятно куда выше приведенный код писать?
вместо
Java
1
meFragment2.getMyIndex(1);
пишите
Java
1
2
Fragment2 fragment = (Fragment2) getActivity().getFragmentManager().findFragmentById(/*сюда вставляете id фрагмента*/);
fragment.getMyIndex(1);
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 00:41  [ТС]     Где в Фрагменте инициализировать доступ к базе? #23
а если у меня у фрагмента обычная разметка где только листвью?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 00:43     Где в Фрагменте инициализировать доступ к базе? #24
и что?
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 00:46  [ТС]     Где в Фрагменте инициализировать доступ к базе? #25
Цитата Сообщение от V0v1k Посмотреть сообщение
и что?
Я не могу ему указать целую xml
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 00:49     Где в Фрагменте инициализировать доступ к базе? #26
я вас не понимаю.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 00:53  [ТС]     Где в Фрагменте инициализировать доступ к базе? #27
вот разметка моего класса расширяющего ListFragment :
XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:contentDescription="@string/app_name"
    android:background="@drawable/background_profile" >
 
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/panel"
        android:orientation="vertical" >
 
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="3.73" >
 
            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:text="Авто"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/white"
                android:textStyle="bold" />
        </RelativeLayout>
    </LinearLayout>
 
    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearLayout1"
        android:layout_centerHorizontal="true" >
    </ListView>
    
      
 
</RelativeLayout>
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 00:58     Где в Фрагменте инициализировать доступ к базе? #28
к чему это?
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 00:58  [ТС]     Где в Фрагменте инициализировать доступ к базе? #29
Вот класс activity которая содержит 4 фрагмента:

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
public class OneActivity extends FragmentActivity {
 
    PagerAdapter pagerAdapter;
    public ViewPager mViewPager;
 
 
    // это нужно для переходна на другой фрагмент по кнопке
    public ViewPager getpager() {
        return mViewPager;
    }
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.my_layout);
 
        mViewPager = (ViewPager) findViewById(R.id.pager);
        TitleAdapter titleAdapter = new TitleAdapter(
                getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
}
 
public class TitleAdapter extends FragmentPagerAdapter {
        private final Fragment frags[] = new Fragment[4];
 
        public TitleAdapter(FragmentManager fm) {
            super(fm);
 
            frags[0] = new Fragment1();
            frags[1] = new Fragment2();
            frags[2] = new Fragment3();
            frags[3] = new Fragment4();
 
        }
 
        @Override
        public Fragment getItem(int position) {
            return frags[position];
        }
 
        @Override
        public int getCount() {
            return frags.length;
        }
    }
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 01:00     Где в Фрагменте инициализировать доступ к базе? #30
ну вот frags[1] и используйте а не meFragment2.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 01:03  [ТС]     Где в Фрагменте инициализировать доступ к базе? #31
Цитата Сообщение от V0v1k Посмотреть сообщение
к чему это?
как я укажу эту разметку? Мне нужно указать id фрагмента, а где у меня там есть id фрагмента?

Добавлено через 2 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
ну вот frags[1] и используйте а не meFragment2.
простите но я не понимаю где это использовать.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 01:04     Где в Фрагменте инициализировать доступ к базе? #32
Цитата Сообщение от Stylish2013 Посмотреть сообщение
простите но я не понимаю где это использовать.
там, где вы используете meFragment2.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 01:30  [ТС]     Где в Фрагменте инициализировать доступ к базе? #33
ошибка frags cannot be resolved to a variable

Добавлено через 21 минуту
Может вы расскажите как всё это реализовать может я неправильно делаю что-то или всё?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.05.2013, 01:39     Где в Фрагменте инициализировать доступ к базе? #34
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
public class OneActivity extends FragmentActivity {
 TitleAdapter titleAdapter;
    PagerAdapter pagerAdapter;
    public ViewPager mViewPager;
 
 
    // это нужно для переходна на другой фрагмент по кнопке
    public ViewPager getpager() {
        return mViewPager;
    }
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.my_layout);
 
        mViewPager = (ViewPager) findViewById(R.id.pager);
        titleAdapter = new TitleAdapter(
                getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
}
 
public Fragment getFragment2() {
         return titleAdapter.getFragment2();
}
 
 
 
public class TitleAdapter extends FragmentPagerAdapter {
        private final Fragment frags[] = new Fragment[4];
 
        public TitleAdapter(FragmentManager fm) {
            super(fm);
 
            frags[0] = new Fragment1();
            frags[1] = new Fragment2();
            frags[2] = new Fragment3();
            frags[3] = new Fragment4();
 
        }
 
        @Override
        public Fragment getItem(int position) {
            return frags[position];
        }
 
         public Fragment getFragment2(){
            return frags[1];
   }
 
        @Override
        public int getCount() {
            return frags.length;
        }
    }
вместо

Java
1
meFragment2.getMyIndex(1);
пишем
Java
1
2
Fragment2 fragment = (Fragment2) ((OneActivity )getActivity()).getFragment2();
fragment.getMyIndex(1);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2013, 02:10     Где в Фрагменте инициализировать доступ к базе?
Еще ссылки по теме:

Android Остановить выполнение во фрагменте
Вывод во втором фрагменте длины текста, введённого в первом фрагменте активити Android
Android Webview на фрагменте
Обработать событие onBackPressed во фрагменте Android
Контекст равен null в АсинкТаске во фрагменте Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
23.05.2013, 02:10  [ТС]     Где в Фрагменте инициализировать доступ к базе? #35
Так а что это всё дает??? Наверное нужно обновить ListView чтоб данные появились а как это сделать?

Добавлено через 9 минут
если к методу добавить

Java
1
2
3
ListTopImageAdapter mAdapter = new ListTopImageAdapter(getActivity(),
                            friends);
                    mListView.setAdapter(mAdapter);
чтобы выглядело всё так, то вроде появляется разная информация как мне и нужно.

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
        //Извлечение элементов из базы данных
                private void fillFreinds() {
                    friends = new ArrayList<String>();
                    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();
                    
                    ListTopImageAdapter mAdapter = new ListTopImageAdapter(getActivity(),
                            friends);
                    mListView.setAdapter(mAdapter);
                    
                }
Yandex
Объявления
23.05.2013, 02:10     Где в Фрагменте инициализировать доступ к базе?
Ответ Создать тему
Опции темы

Текущее время: 18:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru