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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 518
Записей в блоге: 1
#1

Непонятка с ViewPager один и тот же id на разных страницах? - Программирование Android

16.10.2015, 09:32. Просмотров 282. Ответов 6
Метки нет (Все метки)

есть ViewPager, на его страницах списки, всего 4 страницы, долгим кликом на item списка вызываю контекстное меню, далее выбор "изменить", появляется диалог и тостом всплывает номер текущей страницы VP.

так вот 1,2,3-я страницы показывает тост соответствующий 1,2,3, а на четвертой всплывает "3" что это, куда смотреть?

Добавлено через 17 часов 30 минут
подскажите пожалуйста
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2015, 09:32     Непонятка с ViewPager один и тот же id на разных страницах?
Посмотрите здесь:

Как можно использовать один и тот же скрипт VideoView на двух лайоутах? - Программирование Android
Есть такой простенький код для VideoView. Подскажите пожалуйста, как можно использовать этот класс в двух layouts 1 для превью и второй...

Два разных apk-файла, завязанных на один проект - Программирование Android
Мне надо создать два установочника, которые ссылаются на один проект, но могут устанавливаться на Андроид как два разных приложения. Что...

Как можно вызывать один класс в разных activity? - Программирование Android
Всем привет! Пишу плеер типа ютюба и нужно, чтобы один класс вызывался в нескольких активти. я думаю нет смысла писать код плеера в каждой...

Живой поиск через один EditText в разных Listview ? - Программирование Android
есть EditText для поиска по спискам в ToolBar MainActivity. при вводе текста в MainActivity вызывается: @Override ...

ViewPager и Tab - Программирование Android
Здравствуйте. Есть приложение на андроид C# (файл проекта в приложении). Он нормально функционирует, но возникает проблема при...

ViewPager setText - Программирование Android
Приветствую ув.форумчане! Скопировал данный код из startandroid,помогите как сделать, чтобы при каждом слайде был разный текст который...

Поворот ViewPager - Программирование Android
Как повернуть ViewPager на 90 градусов при заблокированной портретной ориентации? Применяю RotateAnimation, но анимация не срабатывает до...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zealot01
42 / 42 / 16
Регистрация: 24.08.2015
Сообщений: 136
Завершенные тесты: 1
16.10.2015, 10:29     Непонятка с ViewPager один и тот же id на разных страницах? #2
disx, Покажи код
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 518
Записей в блоге: 1
16.10.2015, 10:46  [ТС]     Непонятка с ViewPager один и тот же id на разных страницах? #3
zealot01,

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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
package com.photocrib;
 
import java.util.ArrayList;
import java.util.List;
import com.photocrib.DB.DBHelper;
import com.photocrib.FirstFragment.MyCursorLoader;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v4.widget.DrawerLayout;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
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;
    static int ip;
    private static final Context Context = null;
 
    public DB db;
    ViewPager pager;
    PagerAdapter pagerAdapter;
    private Cursor cursor;
    static String arg = null;
    static String count = null;
 
    // _____________________________________________________________________________________________________
    //---------------------splash-----------------------------
 
    //--------------------end splash--------------------------
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//      db = new DB(this);
//      db.open();
//      MyCursorLoader cursorLoader = new MyCursorLoader(this, db);
//      cursor = cursorLoader.loadInBackground();
        // 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));
 
        pager = (ViewPager) findViewById(R.id.pager);
        pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
 
    }
 
    // ---------------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 0:
 
            mTitle = getString(R.string.app_name);
            break;
        case 1:
            //mTitle = getString(R.string.title_section1);
            mTitle = getString(R.string.app_name);
            break;
        case 2:
            mTitle = getString(R.string.title_section2);
//          Intent intent = new Intent(this, AddActivity.class);
//          startActivity(intent);
            break;
        case 3:
            mTitle = getString(R.string.title_section3);
            finish();
            
            break;
        case 4:
            
            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()) {
 
            getMenuInflater().inflate(R.menu.main, menu);
            restoreActionBar();
            return true;
        }
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    // ---------END------ActionBar------------------------
    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
        /**
         * The fragment argument representing the section number for this
         * fragment.
         */
        private static final String ARG_SECTION_NUMBER = "section_number";
 
        /**
         * Returns a new instance of this fragment for the given 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 {
        List<Fragment> mFragments;
 
        public MyFragmentPagerAdapter(FragmentManager fm) {
            super(fm);
            mFragments = new ArrayList<Fragment>();
            mFragments.add(new FirstFragment());
            mFragments.add(new SecondFragment());
            mFragments.add(new TherdFragment());
            mFragments.add(new FourthFragment());
            
        }
 
        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
 
            // return PageFragment.newInstance(position);
        }
 
        @Override
        public int getCount() {
            return mFragments.size();
            // return FRAGMENTS;
            // return PAGE_COUNT;
        }
 
        // v2
        @Override
        public CharSequence getPageTitle(int position) {
            int  id=position;
            ip=id;
            String [] predm = AddActivity.Predmet;
            String titl = predm[id];
            return titl;
        }
//      @Override
//      public CharSequence getPageTitle(int position) {
//          return "Title " + position;
//      }
 
    }
    // --------------END----MyFragmentPagerAdapter----------
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        // super.onBackPressed();
        openQuitDialog();
    }
 
    private void openQuitDialog() {
        AlertDialog.Builder quitDialog = new AlertDialog.Builder(
                MainActivity.this);
        quitDialog.setTitle("Выйти из программы, Вы уверены?");
 
        quitDialog.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                finish();
            }
        });
 
        quitDialog.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
            }
        });
 
        quitDialog.show();
    }
}
zealot01
42 / 42 / 16
Регистрация: 24.08.2015
Сообщений: 136
Завершенные тесты: 1
16.10.2015, 12:09     Непонятка с ViewPager один и тот же id на разных страницах? #4
disx, А Toast откуда вызывается? Чёт не видно. Может из FourthFragment и номер жёстко задан.
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 518
Записей в блоге: 1
16.10.2015, 12:30  [ТС]     Непонятка с ViewPager один и тот же id на разных страницах? #5
zealot01,
А Toast откуда вызывается?
из диалога
Кликните здесь для просмотра всего текста
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
package com.photocrib;
 
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
 
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
 
// ...
  public class Dialog_Edit extends DialogFragment implements View.OnClickListener{
      private Button btSave, btCancel;
      private EditText textPath;
      private int id_col;
      DB db;
      Cursor cursor;
    private String name;
    static int [] arg = {0, 0, 0, 0};
String str, id;
      public Dialog_Edit() {
          // Empty constructor required for DialogFragment
      }
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
 
          id = String.valueOf(MainActivity.ip);
 
 
          Toast toast = Toast.makeText(
                        getActivity(), id,
                        Toast.LENGTH_SHORT);               //////////////////////////////////////TOAST ТУТ
                toast.show();
          id = null;
 
 
          View view = inflater.inflate(R.layout.dialog, container);
          
          textPath = (EditText) view.findViewById(R.id.textPath);
          btSave = (Button) view.findViewById(R.id.button1);
          btCancel = (Button) view.findViewById(R.id.button2);
 
 
          if (FirstFragment.textmsg != "      "){
              arg[0]=1;
          }
          if (SecondFragment.textmsg != "      "){
              arg[1]=2;
          }
          if (TherdFragment.textmsg != "      "){
              arg[2]=3;
          }
          if (FourthFragment.textmsg != "      "){
              arg[3]=4;
          }
 
 
 
          if (arg[0]==1){
             str = FirstFragment.textmsg;
              textPath.setText(str);
 
          }
          if (arg[1]==2) {
              str = SecondFragment.textmsg;
              textPath.setText(str);
 
          }
          if (arg[2]==3) {
              str = TherdFragment.textmsg;
              textPath.setText(str);
 
          }
          if (arg[3]==4) {
              str = FourthFragment.textmsg;
              textPath.setText(str);
 
          }
 
 
//          if (arg[4]==5) {
//              String str5 = "end";
//              textPath.setText(str5);
//          }
 
          btSave.setOnClickListener(this);
          btCancel.setOnClickListener(this);
          getDialog().setTitle("Изменить запись");
 
 
          return view;
      }
 
 
    public void onClick(View v) {
        // TODO Auto-generated method stub
 
        switch (v.getId()) {
            case R.id.button1:
                db = new DB(getActivity());
                db.open();
 
 
                    str = textPath.getText().toString();
                    id_col=FirstFragment.id_col;
                    db.updRec(id_col, str);
                   // FirstFragment.scAdapter.notifyDataSetChanged();
 
 
 
                    str = textPath.getText().toString();
                    id_col = SecondFragment.id_col;
                   // String st = String.valueOf(id_col);
                    db.updRec2(id_col, str);
                  //  SecondFragment.scAdapter2.notifyDataSetChanged();
//                Toast toast = Toast.makeText(
//                        getActivity(), st,
//                        Toast.LENGTH_SHORT);
//                toast.show();
 
 
 
                    str = textPath.getText().toString();
                    id_col = TherdFragment.id_col;
                    db.updRec3(id_col, str);
                   // TherdFragment.scAdapter3.notifyDataSetChanged();
 
 
             //   if (arg[3]!=0) {
 
                str = textPath.getText().toString();
                id_col = FourthFragment.id_col;
                db.updRec4(id_col, str);
                textPath.setText("      ");
 
                    //FourthFragment.scAdapter4.notifyDataSetChanged();
 
               // }
 
 
                if (arg[0]!=0){
 
 
                    FirstFragment.scAdapter.notifyDataSetChanged();
 
                }
                if (arg[1]!=0) {
 
 
                    SecondFragment.scAdapter2.notifyDataSetChanged();
 
                }
                if (arg[2]!=0) {
 
                    TherdFragment.scAdapter3.notifyDataSetChanged();
 
                }
                if (arg[2]!=0) {
 
                    FourthFragment.scAdapter4.notifyDataSetChanged();
 
                }
 
                str = null;
                db.close();
                onDismiss(getDialog());
 
                break;
            case R.id.button2:
 
                onDismiss(getDialog());
                break;
        }
 
    }
  }
zealot01
42 / 42 / 16
Регистрация: 24.08.2015
Сообщений: 136
Завершенные тесты: 1
16.10.2015, 17:55     Непонятка с ViewPager один и тот же id на разных страницах? #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
disx, ViewPager дергает фрагменты из адаптера как ему самому вздумается, может по две страницы прочитать за показ http://startandroid.ru/ru/uroki/vse-...viewpager.html. Номер страницы текущей в getPageTitle может быть неправильный. Вешай на pager OnPageChangeListener
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pager.setAdapter(pagerAdapter);
pager.setOnPageChangeListener(new OnPageChangeListener() {
 
      @Override
      public void onPageSelected(int position) {
        int  id=position;
        MainActivity.ip=id;
      }
 
      @Override
      public void onPageScrolled(int position, float positionOffset,
          int positionOffsetPixels) {
      }
 
      @Override
      public void onPageScrollStateChanged(int state) {
      }
    });
Добавлено через 20 минут
Не забудь начальную страницу задать static int ip=0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2015, 10:28     Непонятка с ViewPager один и тот же id на разных страницах?
Еще ссылки по теме:

ViewPager Indicator - Программирование Android
Здравствуйте! Взял пример с https://github.com/JakeWharton/Android-ViewPagerIndicator и хотел бы объединить табы с индикатором который...

ViewPager автодаводка - Программирование Android
Подскажите пожалст ,как можно изменить автодаводку уменьшить или увеличить?

создание ViewPager - Программирование Android
здравствуйте,возник вопрос по ViewPager. Не получается добавить компоненты после ViewPager, т.е Статический компонент вверху и внизу,а по...

Правильный ViewPager - Программирование Android
Вообщем все что я сделал прикрепил на картинке. Беда то вот в чем. Ну например я тыкаю пальцем ну и скролирую, а тыкаю то я в кнопку...

Изменение Activity из ViewPager - Программирование Android
Добрый день! Есть viewPager, который принимает на вход 3 фрагментов и работает с ними. Активики, в которой расположен viewPager,...


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

Или воспользуйтесь поиском по форуму:
disx
20 / 20 / 0
Регистрация: 26.02.2014
Сообщений: 518
Записей в блоге: 1
24.10.2015, 10:28  [ТС]     Непонятка с ViewPager один и тот же id на разных страницах? #7
zealot01, все по полкам разложил
Yandex
Объявления
24.10.2015, 10:28     Непонятка с ViewPager один и тот же id на разных страницах?
Ответ Создать тему
Опции темы

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