Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
1

Переход между фрагментами

08.08.2014, 19:54. Просмотров 2921. Ответов 3
Метки нет (Все метки)

Здравствуйте. Подскажите, как из одного фрагмента перейти на другой по нажатию кнопки?
Можно ли это реализовать через intent и startAcitivity() или нужно через replace().

Из этого фрагмента хочу перейти на фрагмент MoviesFragment
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
package info.androidhive.tabsswipe;
 
import android.content.ContentValues;
import android.content.Intent;
import android.content.res.Resources;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
 
 
 
 
public class PickChalenge extends Fragment {
    TextView txt;
    Button btnlose, btnfinish, btnmore;
    DataBase sqh;
    SQLiteDatabase sqdb;
    MoviesFragment frag1;
    FragmentTransaction fTrans;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
 
     frag1= new MoviesFragment();   
      txt = (TextView) rootView.findViewById(R.id.txt1);
      sqh = new DataBase(getActivity().getApplicationContext());
      sqdb = sqh.getWritableDatabase();
      btnmore = (Button) rootView.findViewById(R.id.btn3);
        btnmore.setOnClickListener(new OnClickListener() {
          public void onClick(View rootView) {
            
         switch(rootView.getId()) {  
         
         case R.id.btn3:
              Resources res = getResources();
             String[] mas = res.getStringArray(R.array.str);
             
             int min=0, max=6;
             int rand = (int) (min - 0.5 + Math.random()*(max-min+1));
             rand = Math.round(rand);                    
             txt.setText(mas[rand]);
             
            ContentValues cv = new ContentValues();
            cv.put(DataBase.PROGRESS, txt.getText().toString());
            // вызываем метод вставки
            sqdb.insert(DataBase.TABLE_NAME1, DataBase.PROGRESS, cv);
            
            
            Intent intent = new Intent (getActivity(), MoviesFragment.class);
            getActivity().startActivity(intent);
              break;
              
        default:
             break;
         }
          }
        });
                
        return rootView;
    }
 
}
MoviesFragment
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
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import info.androidhive.tabsswipe.DataBase;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class MoviesFragment extends Fragment {
    
ListView lw1;
ArrayAdapter <String> adapter;
ArrayList <String> label = new ArrayList <String>();
DataBase sqh;
SQLiteDatabase sqdb;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_movies, container, false);
        
        lw1 = (ListView) rootView.findViewById(R.id.listrdy);
        
        
        
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
        
        
        return rootView;
    }
    
    @Override
    public void onResume(){
        super.onResume();
        Cursor cursor = sqdb.query(DataBase.TABLE_NAME1, new String[] {
                DataBase._ID, DataBase.PROGRESS }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex(DataBase._ID));
            String name = cursor.getString(cursor.getColumnIndex(DataBase.PROGRESS));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity().getApplicationContext(),android.R.layout.simple_list_item_1,label);
        lw1.setAdapter(adapter);    
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.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
package info.androidhive.tabsswipe;
 
import info.androidhive.tabsswipe.adapter.TabsPagerAdapter;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
 
public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {
 
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    
    // Tab titles
    private String[] tabs = { "Done", "Failed", "In Progress", "Chalenge" };
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        
 
        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }
 
        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }
 
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
 
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }
 
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }
 
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }
 
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }
 
}

после нажатию на кнопку вот такой error: Unable to find explicit activity class {info.androidhive.tabsswipe/info.androidhive.tabsswipe.MoviesFragment}; have you declared this activity in your AndroidManifest.xml?.
Я так понимаю, что он ищет класс в манифесте, а я не хочу создавать отдельную Activity для фрагмента MoviesFragment
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2014, 19:54
Ответы с готовыми решениями:

Взимодействие между фрагментами
Суть такова - имеется всего одна активность. Она содержит фрагмент, на котором...

Сделать переключение между фрагментами
Здравствуйте. Подскажите как сделать переключение между фрагментами. Есть 3...

Как переключаться между фрагментами
Добрые люди. имеется одна активити . в нём контейнер и одна кнопка снизу. когда...

Как Random-но переключаться между фрагментами по нажатию кнопки?
Мне нужна ваша помощь. У меня есть фрагменты с TextView и RaioButtons и Button,...

Переход между активностями!
не могу перейти между активностями! вот весь лог 12-27 14:32:51.611:...

3
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
08.08.2014, 20:05 2
Ну если вы не хотите создавать активити, зачем же тогда вы запускаете активити?
Java
1
2
Intent intent = new Intent (getActivity(), MoviesFragment.class);
            getActivity().startActivity(intent);
startActivity() не наводит на определенные мысли?))
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
08.08.2014, 20:24  [ТС] 3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
startActivity() не наводит на определенные мысли?))
наводит конечно же, т.е. только с помощью replace() можно попасть на другой фрагмент?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
08.08.2014, 20:33 4
Насколько знаю - да. Вот тут подробно описано.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2014, 20:33

Переход между активити
Есть приложение, в котором сейчас активити идут друг за другом так: A -&gt; B -&gt;...

Переход между Activity
Не знаю какой первый параметр указать при объявление intent. Когда делала с...

Переход между окнами
Читая книгу по андройду и юзая AndroidStudio воздник вопрос* при создании...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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