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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
#1

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

08.08.2014, 19:54. Просмотров 2083. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переход между фрагментами (Программирование Android):

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

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

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

Переход между активностями! - Программирование Android
не могу перейти между активностями! вот весь лог 12-27 14:32:51.611: D/dalvikvm(330): GC_EXTERNAL_ALLOC freed 83K, 51% free...

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

Переход между активити - Программирование Android
Есть переход с одной на другую при помощи кнопки, как реализовать выплывающее окно сбоку?

3
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 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 / 3
Регистрация: 27.05.2012
Сообщений: 203
08.08.2014, 20:24  [ТС] #3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
startActivity() не наводит на определенные мысли?))
наводит конечно же, т.е. только с помощью replace() можно попасть на другой фрагмент?
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
08.08.2014, 20:33 #4
Насколько знаю - да. Вот тут подробно описано.
1
08.08.2014, 20:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2014, 20:33
Привет! Вот еще темы с ответами:

Переход перелистыванием между Activity - Программирование Android
Изучением программирования под андроид занялся совсем недавно, и для начала решил написать простое приложение: 2 странички переход между...

Переход между точками по осям X-Y - Программирование Android
добрый день товарищи. интересует как можно реализовать следующее. имеется activity, назовем его test_activity он имеет размер 2800 на...

Переход между fragment и activity - Программирование Android
Доброй ночи) возникла необходимость обратного перехода от активити во фрагмент, при этом ничего обратно передать не надо. То есть...

Работа с фрагментами - Программирование Android
Здравствуйте! Имеется активити package com.example.des.farmer; import android.content.Intent; import android.os.Bundle; import...


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

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

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