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

На каждой странице ViewPager'а должен отображаться свой ListFragment данные для которого берутся из базы - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Вывод данных в ListViev из БД http://www.cyberforum.ru/android-dev/thread1456027.html
Доброго времени суток. Диплом близится а на данный момент всё плоховатенько, ой как плоховатенько. Есть база данных, в ней 4 таблицы("man", "event_type", "meeting", "event"). в таблице "event" хранятся id на данные в предыдущих трёх таблицах. Каким-то образом нужно вывести данные в виде строк, а не цифр(айдишников), которые сей час как раз и выводятся. Как господа? //man private...
Android Остановить выполнение во фрагменте Есть для примера код который расположен в фрагменте. как остановить программу // Если номер введен неверно if(!m.matches()) { //останавливаем программу если ошибка // с таким вызово появляется ошибка getActivity().finish(); http://www.cyberforum.ru/android-dev/thread1456016.html
Android Как приложение Android написать на С++ в Android NDK, чтоб получить *.apk? Нужен мануал
Уже не в первый раз задаю вопрос. Молчание. В лучшем случае - "RTFM" и точка. Так вот, официального мануала, где есть ответ на вышепоставленный вопрос и все описано по шагам, я на нашел. Неофициального - тоже, будь то на русском или английском. Тем не менее, говорят, что сделать то, что я хочу, вполне реально, и такие приложения иногда делают. Прошу дать либо ссылку на мануал, либо вкратце...
Сохранить картинку на канве Android
Здравствуйте! Делаю игру, и ее часть - это "комната" рисования, где должно сохраняться текущее нарисованное изображение. В ней в виде customView расположен холст, на котором пользователь что-то рисует. Но если ему из этой "комнаты" выйти и опять зайти, то нарисованного ранее конечно уже не будет. Много уже сайтов с решениями перелопатил, но ничего не помогает - или ошибки, или просто ничего не...
Android Создание суперкласса для всех Activity http://www.cyberforum.ru/android-dev/thread1455596.html
Господа,доброго времени суток! Возник следующий вопрос: у меня есть несколько активностей(activity1, activity2, activity3), каждая из них содержит по одному фрагменту(fragment1, fragment2, fragment3). Возможно ли и имеет ли смысл создать некую супер-Activity с фрагментом, наследники которой смогут реализовывать свои специфичные activity+fragment ?
Android Файл Html в собственный браузер Здравствуйте! Недавно я создал браузер, а теперь у меня вопрос: как поставить ссылку на HTML файл в самом приложение? Есть код: mWebView.loadUrl("http://google.com"); А как сделать загрузку файлов с самого приложения? подробнее

Показать сообщение отдельно
disx
18 / 18 / 0
Регистрация: 26.02.2014
Сообщений: 456
01.06.2015, 10:59  [ТС]     На каждой странице ViewPager'а должен отображаться свой ListFragment данные для которого берутся из базы
Rube,
проблемные участки
просто я их не вижу, поэтому не знаю что класть...

FirstFragment:
Кликните здесь для просмотра всего текста
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
public class FirstFragment extends Fragment implements
        LoaderCallbacks<Cursor> {
 
    private Context context;
    public DB db;
    public static SimpleCursorAdapter scAdapter;
    private Cursor cursor;
    ListView lvData;
    static String arg = null;
    private static final int CM_DELETE_ID = 1;
    DBHelper dbHelper;
 
    /** Handle the results from the voice recognition activity. */
//  @Override
//    public View onCreateView(LayoutInflater inflater, ViewGroup container,
//        Bundle savedInstanceState) {
//      return inflater.inflate(R.layout.first, null);
//    
//      
//     // return view;
//    }
    
    @SuppressWarnings("deprecation")
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        db = new DB(getActivity());
        db.open();
 
        // получаем курсор
        cursor = db.getAllData(arg);
        String count = String.valueOf(cursor.getCount());
        Toast tost = Toast.makeText(getActivity(),
                count, Toast.LENGTH_SHORT);
        tost.setGravity(50, 200, 30);
        tost.show();
        //CursorLoader cursorLoader = new CursorLoader(getActivity(), android.provider.Browser.BOOKMARKS_URI, null, null, null, null);
 
        //getActivity().startManagingCursor(cursor);
 
        // формируем столбцы сопоставления
        String[] from = new String[] {  DB.COLUMN_IMG, DB.COLUMN_TXT };
        int[] to = new int[] { R.id.ivImg, R.id.tvText };
 
        // создааем адаптер и настраиваем список
 
scAdapter = new SimpleCursorAdapter(getActivity(), R.layout.item, cursor, from, to, 0);
//      scAdapter = new SimpleCursorAdapter(getActivity(), R.layout.item, cursor, from,
//              to);
        lvData = (ListView) getView().findViewById(R.id.listView1);
        lvData.setAdapter(scAdapter);
        //getLoaderManager().initLoader(0, null, this);
        getActivity().getSupportLoaderManager().initLoader(0, null, this);
 
    }
    // обработка нажатия кнопки
      public void onButtonClick(View view) {
        // добавляем запись
        db.addRec("sometext " + (scAdapter.getCount() + 1), R.drawable.ic_launcher, "да");
        // получаем новый курсор с данными
        getActivity().getSupportLoaderManager().getLoader(0).forceLoad();
      }
      
      public void onCreateContextMenu(ContextMenu menu, View v,
          ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
      }
 
      public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
          // получаем из пункта контекстного меню данные по пункту списка
          AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
              .getMenuInfo();
          // извлекаем id записи и удаляем соответствующую запись в БД
          db.delRec(acmi.id);
          // получаем новый курсор с данными
          getActivity().getSupportLoaderManager().getLoader(0).forceLoad();
          return true;
        }
        return super.onContextItemSelected(item);
      }
 
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle bndl) {
        return new MyCursorLoader(getActivity(), db);
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
        scAdapter.swapCursor(cursor);
    }
 
    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
        // TODO Auto-generated method stub
 
    }
 
     class MyCursorLoader extends CursorLoader {
 
        DB db;
 
        public MyCursorLoader(Context context, DB db) {
            super(context);
            this.db = db;
        }
 
        @Override
        public Cursor loadInBackground() {
            Cursor cursor = db.getAllData(arg);
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return cursor;
        }
 
    }
 
    public void onDestroy() {
        super.onDestroy();
        // закрываем подключение при выходе
        db.close();
    }
}


MainActivity
Кликните здесь для просмотра всего текста
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
public class MainActivity extends ActionBarActivity
        implements NavigationDrawerFragment.NavigationDrawerCallbacks {
 
   
    private NavigationDrawerFragment mNavigationDrawerFragment;
 
   
    private CharSequence mTitle;
 
//_____________________________________________________________________________________________________
 
    public static final int FRAGMENTS = 3;
 
  static final String TAG = "myLogs";
  static final int PAGE_COUNT = 10;
 
private static final Context Context = null;
  
//  private String[] mCatTitles;
//  private ListView mDrawerList;
  public DB db;
  ViewPager pager;
  PagerAdapter pagerAdapter;
  private Cursor cursor;
  static String arg = null;
  static String count = null;
  //_____________________________________________________________________________________________________
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 //       db = new DB(this);
//      db.open();
        
    //  cursor = db.getAllData(arg);
    //  count = String.valueOf(cursor.getCount());
 // Toast tost = Toast.makeText(getApplicationContext(),
 //             count, Toast.LENGTH_SHORT);
 //     tost.setGravity(50, 200, 30);
//      tost.show();
        mNavigationDrawerFragment = (NavigationDrawerFragment)
                getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
        mTitle = getTitle();
 
        // Set up the drawer.
        mNavigationDrawerFragment.setUp(
                R.id.navigation_drawer,
                (DrawerLayout) findViewById(R.id.drawer_layout));
//        
//        _fragments.add(FRAGMENT_ONE, new FirstFragment());
//        _fragments.add(FRAGMENT_TWO, new SecondFragment());
//        _fragments.add(FRAGMENT_THREE, new TherdFragment());
        
        pager = (ViewPager) findViewById(R.id.pager);
        pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
 
//        pager.setOnPageChangeListener(new OnPageChangeListener()
//        {
//
//          @Override
//          public void onPageSelected(int position)
//          {
//            Log.d(TAG, "onPageSelected, position = " + position);
//          }
//
//          @Override
//          public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
//          {
//          }
//
//          @Override
//          public void onPageScrollStateChanged(int state)
//          {
//          }
//        });
       
    }
//---------------end onCreate------------
    @Override
    public void onNavigationDrawerItemSelected(int position) {
        // update the main content by replacing fragments
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
                .commit();
    }
//----------Action of String------
    public void onSectionAttached(int number) {
        switch (number) {
            case 1:
                mTitle = getString(R.string.title_section1);
                break;
            case 2:
                mTitle = getString(R.string.title_section2);
                break;
            case 3:
                mTitle = getString(R.string.title_section3);
                break;
        }
    }
//---------------ActionBar------------------------
    public void restoreActionBar() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
        actionBar.setDisplayShowTitleEnabled(true);
        actionBar.setTitle(mTitle);
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        if (!mNavigationDrawerFragment.isDrawerOpen()) {
            // Only show items in the action bar relevant to this screen
            // if the drawer is not showing. Otherwise, let the drawer
            // decide what to show in the action bar.
            getMenuInflater().inflate(R.menu.main, menu);
            restoreActionBar();
            return true;
        }
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
  //---------END------ActionBar------------------------
   
    public static class PlaceholderFragment extends Fragment {
       
        private static final String ARG_SECTION_NUMBER = "section_number";
 
      
        public static PlaceholderFragment newInstance(int sectionNumber) {
            PlaceholderFragment fragment = new PlaceholderFragment();
            Bundle args = new Bundle();
            args.putInt(ARG_SECTION_NUMBER, sectionNumber);
            fragment.setArguments(args);
            return fragment;
        }
 
        public PlaceholderFragment() {
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
 
        @Override
        public void onAttach(Activity activity) {
            super.onAttach(activity);
            ((MainActivity) activity).onSectionAttached(
                    getArguments().getInt(ARG_SECTION_NUMBER));
        }
    }
    //--------------end NavDr and ActionBar------------
    private class MyFragmentPagerAdapter extends FragmentStatePagerAdapter
    {
 
      public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
      }
 
      @Override
      public Fragment getItem(int position)
      {
        //return _fragments.get(position);
        return PageFragment.newInstance(position);
      }
 
      @Override
      public int getCount()
      {
        return FRAGMENTS;
        // return PAGE_COUNT;
      }
 
      // v2
      @Override
      public CharSequence getPageTitle(int position)
      {
        return "Title " + position;
      }
      
     
 
    }
//--------------END----MyFragmentPagerAdapter----------
}


PageFragment
Кликните здесь для просмотра всего текста
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
public class PageFragment extends Fragment
{
  static final String TAG = "myLogs";
 
  static final String ARGUMENT_PAGE_NUMBER = "arg_page_number";
  static final String SAVE_PAGE_NUMBER = "save_page_number";
 
  
  public DB db;
  int pageNumber;
  int backColor;
 
  static PageFragment newInstance(int page)
  {
    PageFragment pageFragment = new PageFragment();
    Bundle arguments = new Bundle();
    arguments.putInt(ARGUMENT_PAGE_NUMBER, page);
    pageFragment.setArguments(arguments);
    return pageFragment;
  }
 
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER);
    Log.d(TAG, "onCreate: " + pageNumber);
 
    Random rnd = new Random();
    backColor = Color.argb(40, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
 
    int savedPageNumber = -1;
    if (savedInstanceState != null)
    {
        
        
      savedPageNumber = savedInstanceState.getInt(SAVE_PAGE_NUMBER);
    }
    Log.d(TAG, "savedPageNumber = " + savedPageNumber);
 
  }
 
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
  {
      View view = null;
      
      switch (pageNumber) {
      case 0:
    // return inflater.inflate(R.layout.first, null);
          View myFragmentView = inflater.inflate(R.layout.first,
                container, false);
          myFragmentView.setBackgroundColor(backColor);
          
          ListView lvData = (ListView) myFragmentView.findViewById(R.id.listView1);
          lvData.setBackgroundColor(Color.GREEN);
          return myFragmentView;
          
//        view = inflater.inflate(R.layout.first, null);
//        ListView lv = (ListView) view.findViewById(R.id.listView1);
         // lv.setAdapter(FirstFragment.scAdapter);
    //    lv.setBackgroundColor(backColor);
//        TextView tvPage1 = (TextView) view.findViewById(R.id.tvView1);
//        tvPage1.setText("Page " + pageNumber);
//        tvPage1.setBackgroundColor(backColor);
        //  break;
    case 1:
          view = inflater.inflate(R.layout.second, null);
          TextView tvPage2 = (TextView) view.findViewById(R.id.tvView2);
          tvPage2.setText("Page " + pageNumber);
          tvPage2.setBackgroundColor(backColor);
          break;
      case 2:
          view = inflater.inflate(R.layout.therd, null);
          TextView tvPage3 = (TextView) view.findViewById(R.id.tvView3);
          tvPage3.setText("Page " + pageNumber);
          tvPage3.setBackgroundColor(backColor);
          break;
  }
    
    return view;
  }
 
  @Override
  public void onSaveInstanceState(Bundle outState)
  {
    super.onSaveInstanceState(outState);
    outState.putInt(SAVE_PAGE_NUMBER, pageNumber);
  }
 
  @Override
  public void onDestroy()
  {
    super.onDestroy();
    Log.d(TAG, "onDestroy: " + pageNumber);
  }
}

first.xml
Кликните здесь для просмотра всего текста
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
  <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical" >
 
         <TextView
             android:id="@+id/tvView1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text="@string/list_activity1"
             android:textColor="#000000" />
 
         <ListView
             android:id="@+id/listView1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" >
         </ListView>
 
     </LinearLayout> 
    
 
</LinearLayout>


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