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

Fragment не отображается на Activity - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Нарисовать на Activity в Material Design http://www.cyberforum.ru/android-dev/thread1448466.html
Пишу приложение что-то типо шпаргалки для музыкантов, в общем нужно нарисовать апликатуры (см. вложение). Может кто подскажет как это лучше сделать, просто добавлять как ImageView не хочется, т.к....
Программирование Android Как узнать чем закодирован текст? Решил отфильтровать трафик, который отправляет программа на планшете и получил пару файлов с таким содержанием:... http://www.cyberforum.ru/android-dev/thread1448450.html
Вывод смайликов в SMS чате Программирование Android
Здравствуйте, все вроде работает, но при вводе несколько подряд или не подряд смайликов выводится больше смайликов и текстовое представление смайликов сдвигается вправо. Сначало в переменную String...
Программирование Android Метод .setText не показывает русские символы
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Моя проблема в том, что при смене текста в TextView с помощью метода .setText вместо русских символов программа ставит вопросики. Я...
Программирование Android Вывести картинку из интернета в ImageView(android studio) http://www.cyberforum.ru/android-dev/thread1448029.html
Имеется класс ImageManager package com.example.myapplication4; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message;...
Программирование Android Редактирование .mtx файлов (перевод игры) Пытаюсь перевести недавно вышедшую игру. В .apk все картинки с текстом предположительно лежат в файлах с таким построением Имя_файла.png(или .jpeg).mtx.mp3 Пробовал убирать .mp3 из названия и... подробнее

Показать сообщение отдельно
madmonkey
0 / 0 / 0
Регистрация: 03.05.2015
Сообщений: 14

Fragment не отображается на Activity - Программирование Android

16.05.2015, 22:15. Просмотров 697. Ответов 12
Метки (Все метки)

Здравствуйте! Помогите, пожалуйста, разобраться.
Суть такая: пользователь проходит упражнение по переводу слова на другой язык, т.е. совершает несколько одинаковых действий подряд(цикл). На активити размещен FrameLayout и кнопка. При открытии активити во FrameLayout загружается фрагмент со словом из БД, которое нужно перевести, и полем editText. При нажатии на кнопку идет проверка введенных данных, и в FrameLayout загружается тот же фрагмент, но уже с новым словом, и так несколько раз.
Все вроде работает, в логи выводится информация, поступающая из БД в фрагмент, но проблема вот в чем: фрагмент не отображается на экране. То есть при первом открытии активити - отображается, а при нажатии кнопки уже нет.
А если вместо того же самого фрагмента при нажатии на кнопку открою другой, тот отображается. Не доходит, в чем ошибка.
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
public class ExTranslateRus extends ActionBarActivity implements OnClickListener {
    //...
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exercize);
 
        //...
 
        frag = new Fragment1();
        fragTrans = getFragmentManager().beginTransaction();
        fragTrans.add(R.id.fragCont, frag); //помещаем фрагмент в контейнер
        fragTrans.commit();
 
        myPrefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
        i = myPrefs.getInt("i", 123); //i - номер прохода цикла (упражнения)
        if (i == 0) {
            i = i + 1;
            Editor editor = myPrefs.edit();
            editor.remove("i");
            editor.putInt("i", i);
            editor.apply();
        }
        i = myPrefs.getInt("i", 123);
        Log.d(LOG_TAG, "i="+i);
 
        btnNext = (Button) findViewById(R.id.btnNext);
        btnNext.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick (View view){
 
        //проверка правильности ответа 
        //...
     
        //проверка номера прохода по циклу
        i = myPrefs.getInt("i", 123); 
        if (i < 8) { 
            i = i +1;
            fragTrans = getFragmentManager().beginTransaction();
            fragTrans.remove(frag); //удаляем текущий фрагмент
            fragTrans.commit();
            fragTrans = getFragmentManager().beginTransaction();
            fragTrans.add(R.id.fragCont, frag); //вставляем фрагмент заново
            fragTrans.commit();
            //если убрать remove(frag) - содержимое контейнера вообще не меняется,
            //и код фрагмента не выполняется
            //replace вместо add тоже не помогает
            //...
        } else {
            //...
            Intent intent2 = new Intent(this, ResultExercize.class);
            startActivity(intent2);
        }
    }
 
    public static class Fragment1 extends Fragment {
 
        //...
 
        @Override
        public View onCreateView (LayoutInflater inflater, ViewGroup container,
                                  Bundle savedInstanceState) {
            View rootview = inflater.inflate(R.layout.ex_translate_rus, null);
 
            // выполнение запроса из БД, вывод в текстВью
            //...
 
            return rootview;
        }
    }
}
Файл xml активити:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ExTranslateRus"
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/fragCont">
    </FrameLayout>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnNext"
        android:text="@string/next"/>
</LinearLayout>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru