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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
#1

Загрузка двух фрагментов в ландшафтной ориентации - Программирование Android

20.08.2012, 21:38. Просмотров 2271. Ответов 22
Метки нет (Все метки)

Всем привет!!! Помогите решить кое-какую проблему.

Во фрагменте главной Активности(MainFragmentActivity) есть кнопка которая загружает активность «TwoActivity.class»:

MainFragmentActivity

Java
1
2
3
4
5
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity().getApplicationContext(),TwoActivity.class);
startActivity(intent); 
}
TwoActivity:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.project.qqq;
 
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
 
public class TwoActivity extends FragmentActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    //Загружает если ландшафтная ориентация
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.qwerty);
}
}
}
qwerty.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="horizontal"> 
       
<fragment class=" com.project.qqq.OneFragment" --> В логе он по всей видимости указывает на    эту строку не могу понять в чём дело...
          android:layout_weight="1.3"
           android:layout_width="0px"
            android:layout_height="match_parent" ></fragment>
  <fragment class=" com.project.qqq.TwoFragment"
            android:layout_weight="1"
            android:layout_width="0px"
            android:layout_height="match_parent" ></fragment>   
 </LinearLayout>
При вызове TwoActivity.class. При успешной загрузке в ландшафтной ориентации должно появиться два фрагмента один слева, другой справа, но приложение закрывается с сообщением «unfortunately has stopped».
В логе появляются следующий ошибки:

Кликните здесь для просмотра всего текста
08-19 01:55:19.599: E/Trace(3657): error opening trace file: No such file or directory (2)
08-19 01:55:56.539: E/AndroidRuntime(3657): FATAL EXCEPTION: main
08-19 01:55:56.539: E/AndroidRuntime(3657): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.project.qqq/com.project.qqq.TwoActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3512)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.access$700(ActivityThread.java:130)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.os.Handler.dispatchMessage(Handler.java:99)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.os.Looper.loop(Looper.java:137)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.main(ActivityThread.java:4745)
08-19 01:55:56.539: E/AndroidRuntime(3657): at java.lang.reflect.Method.invokeNative(Native Method)
08-19 01:55:56.539: E/AndroidRuntime(3657): at java.lang.reflect.Method.invoke(Method.java:511)
08-19 01:55:56.539: E/AndroidRuntime(3657): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-19 01:55:56.539: E/AndroidRuntime(3657): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-19 01:55:56.539: E/AndroidRuntime(3657): at dalvik.system.NativeStart.main(Native Method)
08-19 01:55:56.539: E/AndroidRuntime(3657): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
08-19 01:55:56.539: E/AndroidRuntime(3657): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.Activity.setContentView(Activity.java:1867)
08-19 01:55:56.539: E/AndroidRuntime(3657): at com.project.qqq.Two Activity.onCreate(TwoActivity.java:14)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.Activity.performCreate(Activity.java:5008)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
08-19 01:55:56.539: E/AndroidRuntime(3657): ... 12 more
08-19 01:55:56.539: E/AndroidRuntime(3657): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030006
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.content.res.Resources.getValue(Resources.java:1013)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2098)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.content.res.Resources.getLayout(Resources.java:852)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
08-19 01:55:56.539: E/AndroidRuntime(3657): at com.project.qqq.TwoFragment.onCreateView(TwoFragment.java:46)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:846)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1061)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1160)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)
08-19 01:55:56.539: E/AndroidRuntime(3657): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
08-19 01:55:56.539: E/AndroidRuntime(3657): ... 22 more


Я уже замучался…помогите решить эту проблему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.08.2012, 22:24     Загрузка двух фрагментов в ландшафтной ориентации #2
Цитата Сообщение от AKAndrey Посмотреть сообщение
NotFoundException: Resource ID
Цитата Сообщение от AKAndrey Посмотреть сообщение
TwoFragment.java:46
.....
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
20.08.2012, 23:25  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #3
Ресурс с ID #0x7f030006 в файле R.java существует. В папке приложения тоже. что касается TwoFragment.java:46 так он ругается на то что не может создать вьюху с таким айдишником...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.08.2012, 23:49     Загрузка двух фрагментов в ландшафтной ориентации #4
да покажите вы код.
некорректный id, такое бывает если например вместо id лаяута вы указываете, например, id картинки.

Добавлено через 7 минут
Цитата Сообщение от AKAndrey Посмотреть сообщение
Ресурс с ID #0x7f030006 в файле R.java существует.
ну и чего это id и как вы его используете?
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
20.08.2012, 23:55  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #5
OneFragment.java

Java
1
2
3
4
5
6
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.onexml, container, false);// это единственное место где он используется
        return view;
    }
R.java

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
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */
 
package com.project.qqq;
 
public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_action_search=0x7f020000;
        public static final int ic_launcher=0x7f020001;
        public static final int logotip=0x7f020002;
    }
    public static final class id {
        public static final int EditLogin=0x7f070002;
        public static final int EditPassword=0x7f070003;
        public static final int EnterMcr=0x7f070004;
        public static final int LayRelatWriteText=0x7f070007;
        public static final int LayoutLinear=0x7f070000;
        public static final int LinearFragment=0x7f070005;
        public static final int LinerMicroblog=0x7f070006;
        public static final int ListMessages=0x7f07000c;
        public static final int Logotip=0x7f070001;
        public static final int Message=0x7f07000b;
        public static final int NonMessage=0x7f07000d;
        public static final int SendText=0x7f070010;
        public static final int Text=0x7f07000f;
        public static final int Time=0x7f07000a;
        public static final int WriteTextLinear=0x7f07000e;
        public static final int item_headerText=0x7f070008;
        public static final int item_subHeaderText=0x7f070009;
        public static final int menu_settings=0x7f070011;
    }
    public static final class layout {
        ...
        public static final int onexml=0x7f030006;
        public static final int slide_left_in=0x7f030007;
        public static final int slide_left_out=0x7f030008;
        public static final int slide_right_in=0x7f030009;
        public static final int slide_right_out=0x7f03000a;
        ...
    }
    public static final class menu {
        public static final int activity_main=0x7f060000;
    }
    public static final class string {
        public static final int EditLogin=0x7f040009;
        public static final int EditPassword=0x7f04000a;
        public static final int EnterMcr=0x7f040007;
        public static final int LabelLogin=0x7f040003;
        public static final int LabelPassword=0x7f040004;
        public static final int SendMessage=0x7f040008;
        public static final int app_name=0x7f040005;
        public static final int hello_world=0x7f040000;
        public static final int logotip=0x7f04000b;
        public static final int mcr_name=0x7f040006;
        public static final int menu_settings=0x7f040001;
        public static final int title_activity_main=0x7f040002;
    }
    public static final class style {
        /**  <style name="AppTheme" parent="android:Theme.Light" />
         */
        public static final int AppTheme=0x7f050000;
    }
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 00:03     Загрузка двух фрагментов в ландшафтной ориентации #6
R.layout.onexml покажите
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 00:06  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #7
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:gravity="center_vertical"
    >
    <TextView
    android:id="@+id/Time"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:paddingTop="0dp"
    android:textAppearance="?android:attr/textAppearanceMedium" />
 
    <TextView
    android:id="@+id/Message"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:paddingBottom="0dp"
    android:textAppearance="?android:attr/textAppearanceMedium"/>
    <ListView
        android:id="@+id/ListMessages"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:listSelector="@android:color/transparent" 
        android:soundEffectsEnabled="false">
    </ListView>  
    
    <TextView
    android:id="@+id/NonMessage"  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 00:11     Загрузка двух фрагментов в ландшафтной ориентации #8
выложите архив проекта, так будет проще разобраться.

Добавлено через 46 секунд
Цитата Сообщение от AKAndrey Посмотреть сообщение
OneFragment.java
эээ, я же просил
Цитата Сообщение от V0v1k Посмотреть сообщение
TwoFragment
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
21.08.2012, 00:43     Загрузка двух фрагментов в ландшафтной ориентации #9
не знаю что там у вас с фрагментами 8/ ,но вот это лишнее
Java
1
2
3
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.qwerty);
}
в таких случаях делается папка с постфиксом land
можно просто
layout-land для ландшафта
и
layout для портрета
с соответствующими qwerty.xml для каждого
возможно вы насильно пытаетесь заставить систему счесть портретную папку тогда как девайс в ландшафте .
и потом чего это в xml смайлик делает ? видимо там =":"+"p"
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 00:49  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #10
в архиве wwwww.rar
Вложения
Тип файла: rar wwwww.rar (399.5 Кб, 9 просмотров)
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 00:53  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #11
пробовал я добавлять в папку layout-land, но ничего не менялось. А на счёт смайликов так это просто когда в тексте встречается ":P" и т.д, то он заменяет это как на смайлик))))
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 00:57     Загрузка двух фрагментов в ландшафтной ориентации #12
первое что бросилось в глаза - нет второй активити в манифесте.
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 00:57  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #13
пробовал я добавлять в папку layout-land, но ничего не менялось. А на счёт смайликов так это естественно там присутствует строка "android:" + PaddingTop="0dp""
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 01:00     Загрузка двух фрагментов в ландшафтной ориентации #14
вы что-то не то выложили...
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 01:02  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #15
у меня они есть вот:

XML
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
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.project.wwwww"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
 
   <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/mcr_name"
        android:theme="@style/AppTheme"
         >
        <activity
            android:name=".EnterActivity"
            android:label="@string/mcr_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        
        <activity<--Вот вторая
            android:name=".MicroblogActivity"
            android:label="@string/mcr_name"
             ></activity>
        <activity<--Вот третья
            android:name=".WriteTextActivity"
            android:label="@string/mcr_name"
             ></activity>
    </application>
 
</manifest>
Добавлено через 2 минуты
Это как раз таки то. Просто до того как я вам архив отправил я заменял название файлов.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 01:03     Загрузка двух фрагментов в ландшафтной ориентации #16
Цитата Сообщение от AKAndrey Посмотреть сообщение
пробовал я добавлять в папку layout-land, но ничего не менялось.
значит что-то не так делали.
AKAndrey
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 54
21.08.2012, 01:06  [ТС]     Загрузка двух фрагментов в ландшафтной ориентации #17
У меня там EnterActivity это первая активность MicroblogActivity - вторая и WriteTextActivity - третья.

Добавлено через 1 минуту
ну я во всяком случае попробую ещё в папку layout-land добавить может быть действительно не так делал...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 01:32     Загрузка двух фрагментов в ландшафтной ориентации #18
там и в других местах имена не совпадают, еще и ругается еклипс на файл Thumbs.db

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

Добавлено через 10 минут
String myFeed = Variables.URL_USERS_AUTHORIZATION;
url = new URL(myFeed);

здесь у меня екзепшен

08-20 21:24:02.502: W/System.err(579): java.net.MalformedURLException: Protocol not found: prime...

Добавлено через 32 секунды
попробуйте отделить вашу проблему от остального кода.

Добавлено через 6 минут
вызвал все активити, нет такого екзепшена как у вас.
efirist
2 / 2 / 0
Регистрация: 23.03.2012
Сообщений: 20
21.08.2012, 01:33     Загрузка двух фрагментов в ландшафтной ориентации #19
class="com.project.microblognavidu.EnterFragment"
в xml

package="com.project.wwwww"
в манифесте
com.project.microblognavidu != com.project.wwwww
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 01:37     Загрузка двух фрагментов в ландшафтной ориентации
Еще ссылки по теме:
Android Анимация фрагментов и активити
Смена ориентации экрана Android
Изменение ориентации экрана Android
Android ViewPager обновление фрагментов
Событие смены ориентации экрана Android

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.08.2012, 01:37     Загрузка двух фрагментов в ландшафтной ориентации #20
Цитата Сообщение от efirist Посмотреть сообщение
class="com.project.microblognavidu.EnterFragment"
в xml
package="com.project.wwwww"
в манифесте
com.project.microblognavidu != com.project.wwwww
там так во всех лаяутах. это совсем другой екзепшн чем мы ищем...
Yandex
Объявления
21.08.2012, 01:37     Загрузка двух фрагментов в ландшафтной ориентации
Ответ Создать тему
Опции темы

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