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

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

Войти
Регистрация
Восстановить пароль
 
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 48
#1

Фрагменты: приложение вылетает при 4-ом нажатии на кнопку - Программирование Android

08.03.2016, 11:26. Просмотров 294. Ответов 13
Метки нет (Все метки)

Здравствуйте, в фрагменте есть кнопка, при нажатии на неё 3 раза приложение работает, на 4 вылетает, и пишет, что это из-за (View v = inflater.inflate(R.layout.fragment2_1, null); ). Как это исправить?

Java
1
2
3
4
5
6
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment2_1, null);
        btn8 = (Button) v.findViewById(R.id.button8);
        btn8.setOnClickListener(this);
        return v;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2016, 11:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фрагменты: приложение вылетает при 4-ом нажатии на кнопку (Программирование Android):

Вылетает приложение при нажатии на кнопку - Программирование Android
Здравствуйте, столкнулся с проблемой, что при нажатии на кнопку приложение вылетает. Программирую в Android Studio, кто нибудь сталкивался...

При нажатии на кнопку приложение закрывается - Программирование Android
Здравствуйте. Возникла проблема и вот не знаю как решить. Запускал приложение на эмуляторе, все нормально работало. Теперь установил на...

Закрыть приложение при нажатии на кнопку - Программирование Android
Народ сильно не ругайте, не могу вспомнить как что указать, чтобы при нажатии на кнопку приложение закрывалось? Добавлено через 25...

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

Приложение вылетает при старте на 4.1, на 4.4 - работает - Программирование Android
Здравствуйте, Я написал приложение для android в eclipse 4.4.2. На телефоне с android 4.4.2 приложение отлично работает. На телефоне...

Вылетает приложение при обращении к серверу - Программирование Android
Обращаюсь к серверу для получения списка продуктов. Сервер проверил, JSON ответ в порядке, на IOS работает без проблем. В случае с андроид...

13
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
08.03.2016, 12:08 #2
Java
1
View v = inflater.inflate(R.layout.fragment2_1, null, false);
и логи ошибки надо видеть что бы не гадать

и где сам метод onClick ?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
08.03.2016, 12:09 #3
_Dasha_, добрый день!
Вы можете привести больше кода? Например, onClick.
Также не могли бы показать лог ошибки?
Java
1
View v = inflater.inflate(R.layout.fragment2_1, null);
рекомендуют заменять на
Java
1
View v = inflater.inflate(R.layout.fragment2_1, container, false);
0
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 48
08.03.2016, 12:53  [ТС] #4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void onClick(View v) {
        fTrans = getFragmentManager().beginTransaction();
        switch (v.getId()) {
            case (R.id.button8):
                fTrans.replace(R.id.frgmCont, frag2_2);
                break;
        
            default:
                break;
        }
 
        fTrans.commit();
    }
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
08.03.2016, 12:57 #5
_Dasha_, девушка, тогда нужен ещё код фрагмента frag2_2. Вы понимаете, что нажимая на кнопку, вы фактически замещаете один фрагмент другим? И во второй фрагменте кнопка будет уже другая. Нужен и её код.
0
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 48
08.03.2016, 12:58  [ТС] #6
03-08 15:58:03.858 10713-10713/com.vda.pomo E/art: Throwing OutOfMemoryError "Failed to allocate a 2669292 byte allocation with 1600996 free bytes and 1563KB until OOM"
03-08 15:58:03.868 10713-10713/com.vda.pomo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.vda.pomo, PID: 10713
java.lang.OutOfMemoryError: Failed to allocate a 2669292 byte allocation with 1600996 free bytes and 1563KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:741)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:562)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1014)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:3702)
at android.content.res.Resources.loadDrawable(Resources.java:3575)
at android.content.res.TypedArray.getDrawable(TypedArray.java:750)
at android.view.View.<init>(View.java:3939)
at android.widget.TextView.<init>(TextView.java:923)
at android.widget.TextView.<init>(TextView.java:918)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:60)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:56)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:92)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:181)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:732)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.vda.pomo.formul.Fragment2_5.onCreateView(Fragment2_5.java:53)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

Добавлено через 47 секунд
у неё код такой же
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
08.03.2016, 13:09 #7
_Dasha_, если почитать http://stackoverflow.com/questions/2...other-fragment, например, то необходимо также не добавлять фрагменты в стек:
Java
1
fTrans.addToBackStack(null);
Разместите после fTrans.replace(R.id.frgmCont, frag2_2);
0
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 48
08.03.2016, 13:31  [ТС] #8
Не помогло, к сожалению
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.03.2016, 10:05 #9
_Dasha_, ошибка та же?
А что вы грузите, помимо фрагментов? Какие-то изображения, карты? Что отнимает память?
0
_Dasha_
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 48
10.03.2016, 06:27  [ТС] #10
да, наверное, всё дело в изображениях, избавиться от них я не могу, так как это формулы по физике. нужно качество уменьшить?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
10.03.2016, 09:28 #11
_Dasha_, девушка, вам нужно либо поставить один из кэшей изображений (Fresco, Glide, UIL и др., а также самописные), либо изучить soft reference.
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.03.2016, 10:06 #12
Вот, кстати, известная ссылка с кучей библиотек: http://stackoverflow.com/questions/5...-listview?rq=1
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
12.03.2016, 10:21 #13
Цитата Сообщение от CoolMind Посмотреть сообщение
если почитать http://stackoverflow.com/questions/2...other-fragment, например, то необходимо также не добавлять фрагменты в стек:
Java(TM) 2 Platform Standard Edition 5.0Выделить код
1
fTrans.addToBackStack(null);
Разместите после fTrans.replace(R.id.frgmCont, frag2_2);
Как раз таки вы и добавляете этой строчкой фрагмент в stack.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.03.2016, 10:30 #14
Bend3r, ага. Я ошибся.
0
12.03.2016, 10:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 10:30
Привет! Вот еще темы с ответами:

Вылетает приложение при чтении файла - Программирование Android
Доброго времени суток))) Помогите решить проблему Имеется код:package ru.myscanner.scannerth; import java.io.FileInputStream; ...

Вылетает приложение при возникновении ошибки - Программирование Android
Доброго всем времени суток! Вот есть приложение по работе с MySQL. Тему эту мы разобрали, и вроде все прекрасно. Одно маленькое &quot;но&quot; ...

Ошибка при нажатии на кнопку - Программирование Android
package ru.test.gthen; import android.app.*; import android.os.*; import android.view.*; import android.widget.*; import...

Вылетает приложение при использовании Adobe Air - Программирование Android
Создаю пустое приложение в adobe flash, Air для android , скидываю на телефон , при запуске вылетает с ошибкой . Android 5.1.1 nexus 5 ...


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

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

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