无法加载与片段活动 [英] Unable to load the activity with fragments

查看:100
本文介绍了无法加载与片段活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是片段我的第一个TIMR运行。看一看下面的code。

activity_main.xml

 < RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:以下属性来=@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    工具:上下文=MainActivity。>

    <的TextView
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文本=@字符串/参考hello world/>

    <片段
        机器人:ID =@ + ID / firstViewFragment
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        类=com.example.fragmenttest.FirstView/>

    <片段
        机器人:ID =@ + ID / secondViewFragment
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        类=com.example.fragmenttest.SecondView/>

< / RelativeLayout的>
 

fragment_view1.xml

 < XML版本=1.0编码=UTF-8&GT?;
< RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>

    <的TextView
        机器人:ID =@ + ID / viewOneText
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真
        机器人:layout_marginLeft =92dp
        机器人:layout_marginTop =182dp
        机器人:文本=第一个视图
        机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?

    <按钮
        机器人:ID =@ + ID / viewOneBtn
        风格=机器人:ATTR / buttonStyleSmall
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignRight =@ + ID / textView1
        机器人:layout_below =@ + ID / textView1
        机器人:layout_marginTop =16DP
        机器人:文本=点击这里/>

< / RelativeLayout的>
 

fragment_view2.xml

 < XML版本=1.0编码=UTF-8&GT?;
< RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直
    机器人:后台=#ffddff>

    <的TextView
        机器人:ID =@ + ID / secondViewText
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentTop =真
        机器人:layout_centerHorizo​​ntal =真
        机器人:layout_marginTop =190dp
        机器人:文本=查看2
        机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?

    <按钮
        机器人:ID =@ + ID / secondViewBtn
        风格=机器人:ATTR / buttonStyleSmall
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_below =@ + ID / secondViewText
        机器人:layout_centerHorizo​​ntal =真
        机器人:文本=按钮/>

< / RelativeLayout的>
 

MainActivity.java

 包com.example.fragmenttest;

进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;

公共类MainActivity延伸活动{

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
    }

    @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        //充气菜单;这增加了项目操作栏,如果它是present。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }

}
 

FirstView.java

 包com.example.fragmenttest;

进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.ViewGroup;
进口android.widget.Button;
进口android.widget.TextView;

公共类的firstView扩展片段
{
    私人TextView的firstText;
    私人按钮BTN;

    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState)
    {
        firstText =(TextView中)getView()findViewById(R.id.viewOneText)。
        BTN =(按钮)getView()findViewById(R.id.viewOneBtn)。

        btn.setOnClickListener(新ButtonEvent());

        查看查看= inflater.inflate(R.layout.fragment_view1,集装箱,假);
        返回查看;

    }

    私有类ButtonEvent实现OnClickListener
    {

        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            firstText.setText(第一成Btn查看点击的);

        }

    }
}
 

SecondView.java

 包com.example.fragmenttest;

进口android.os.Bundle;
进口android.support.v4.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.ViewGroup;
进口android.widget.Button;
进口android.widget.TextView;

公共类SecondView扩展片段
{
    私人TextView的secondText;
    私人按钮secondViewBtn;

    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState)
    {
        secondText =(TextView中)getView()findViewById(R.id.secondViewText)。
        secondViewBtn =(按钮)getView()findViewById(R.id.secondViewBtn)。

        secondViewBtn.setOnClickListener(新ButtonEvent());

        查看查看= inflater.inflate(R.layout.fragment_view2,集装箱,假);
        返回查看;

    }

    私有类ButtonEvent实现OnClickListener
    {

        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            secondText.setText(第二个视图的文本改变了);

        }

    }
}
 

当我运行这个应用程序时,我收到以下错误

 十二月11日至26日:18:36.137:E / AndroidRuntime(850):致命异常:主要
12月11号至26号:18:36.137:E / AndroidRuntime(850):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.fragmenttest / com.example.fragmenttest.MainActivity}:android.view.InflateException:二进制XML文件行#16:错误充气类片段
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.os.Handler.dispatchMessage(Handler.java:99)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.os.Looper.loop(Looper.java:137)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread.main(ActivityThread.java:5041)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在java.lang.reflect.Method.invokeNative(本机方法)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在java.lang.reflect.Method.invoke(Method.java:511)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在dalvik.system.NativeStart.main(本机方法)
12月11号至26号:18:36.137:E / AndroidRuntime(850):android.view.InflateException:二进制XML文件中的行#16:错误充气类片段产生的原因
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.inflate(LayoutInflater.java:489)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Activity.setContentView(Activity.java:1881)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在com.example.fragmenttest.MainActivity.onCreate(MainActivity.java:12)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Activity.performCreate(Activity.java:5104)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12月11号至26号:18:36.137:E / AndroidRuntime(850):11 ...更多
12月11号至26号:18:36.137:E / AndroidRuntime(850):由:java.lang.ClassCastException:com.example.fragmenttest.FirstView不能转换为android.app.Fragment
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Fragment.instantiate(Fragment.java:585)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Fragment.instantiate(Fragment.java:560)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.app.Activity.onCreateView(Activity.java:4709)
12月11号至26号:18:36.137:E / AndroidRuntime(850):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
12月11号至26号:18:36.137:E / AndroidRuntime(850):21 ...更多
 

为什么我无法运行呢?请大家帮帮忙。

更新

由于这样用户提到的,我改变了我的 MainActivity

 包com.example.fragmenttest;

进口android.os.Bundle;
进口android.app.Activity;
进口android.support.v4.app.FragmentActivity;
进口android.view.Menu;

公共类MainActivity扩展FragmentActivity {

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
    }

    @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        //充气菜单;这增加了项目操作栏,如果它是present。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }

}
 

现在我有以下错误

 十二月11日至26日:35:34.137:E / AndroidRuntime(968):致命异常:主要
12月11号至26号:35:34.137:E / AndroidRuntime(968):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.fragmenttest / com.example.fragmenttest.MainActivity}:android.view.InflateException:二进制XML文件行#16:错误充气类片段
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.os.Handler.dispatchMessage(Handler.java:99)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.os.Looper.loop(Looper.java:137)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread.main(ActivityThread.java:5041)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在java.lang.reflect.Method.invokeNative(本机方法)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在java.lang.reflect.Method.invoke(Method.java:511)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在dalvik.system.NativeStart.main(本机方法)
12月11号至26号:35:34.137:E / AndroidRuntime(968):android.view.InflateException:二进制XML文件中的行#16:错误充气类片段产生的原因
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.inflate(LayoutInflater.java:489)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.Activity.setContentView(Activity.java:1881)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在com.example.fragmenttest.MainActivity.onCreate(MainActivity.java:13)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.Activity.performCreate(Activity.java:5104)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12月11号至26号:35:34.137:E / AndroidRuntime(968):11 ...更多
12月11号至26号:35:34.137:E / AndroidRuntime(968):由:显示java.lang.NullPointerException
12月11号至26号:35:34.137:E / AndroidRuntime(968):在com.example.fragmenttest.FirstView.onCreateView(FirstView.java:19)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:900)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1184)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285)
12月11号至26号:35:34.137:E / AndroidRuntime(968):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
12月11号至26号:35:34.137:E / AndroidRuntime(968):21 ...更多
 

解决方案

MainActivity 必须延长 FragmentActivity 从支持库。

和你的第一个片段onCreateView(),这是第一行

 查看视图= inflater.inflate(R.layout.fragment_view1,集装箱,假);
 

和替换 getView()视图

This is my first timr run with Fragments. Have a look at the below code.

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <fragment 
        android:id="@+id/firstViewFragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.example.fragmenttest.FirstView"/>

    <fragment 
        android:id="@+id/secondViewFragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.example.fragmenttest.SecondView"/>

</RelativeLayout>

fragment_view1.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/viewOneText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="92dp"
        android:layout_marginTop="182dp"
        android:text="First View"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/viewOneBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="16dp"
        android:text="Click Here" />

</RelativeLayout>

fragment_view2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffddff" >

    <TextView
        android:id="@+id/secondViewText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="190dp"
        android:text="View 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/secondViewBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/secondViewText"
        android:layout_centerHorizontal="true"
        android:text="Button" />

</RelativeLayout>

MainActivity.java

package com.example.fragmenttest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

FirstView.java

package com.example.fragmenttest;

import android.os.Bundle;
import android.support.v4.app.Fragment;
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 FirstView extends Fragment
{
    private TextView firstText;
    private Button btn;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        firstText = (TextView)getView().findViewById(R.id.viewOneText);
        btn = (Button)getView().findViewById(R.id.viewOneBtn);

        btn.setOnClickListener(new ButtonEvent());

        View view = inflater.inflate(R.layout.fragment_view1,container,false);
        return view;

    }

    private class ButtonEvent implements OnClickListener
    {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            firstText.setText("First View Btn Clicked");

        }

    }
}

SecondView.java

package com.example.fragmenttest;

import android.os.Bundle;
import android.support.v4.app.Fragment;
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 SecondView extends Fragment
{
    private TextView secondText;
    private Button secondViewBtn;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        secondText = (TextView)getView().findViewById(R.id.secondViewText);
        secondViewBtn = (Button)getView().findViewById(R.id.secondViewBtn);

        secondViewBtn.setOnClickListener(new ButtonEvent());

        View view = inflater.inflate(R.layout.fragment_view2,container,false);
        return view;

    }

    private class ButtonEvent implements OnClickListener
    {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            secondText.setText("Second View Text changed");

        }

    }
}

When I run this application, I get the following error

11-26 12:18:36.137: E/AndroidRuntime(850): FATAL EXCEPTION: main
11-26 12:18:36.137: E/AndroidRuntime(850): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fragmenttest/com.example.fragmenttest.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.os.Looper.loop(Looper.java:137)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread.main(ActivityThread.java:5041)
11-26 12:18:36.137: E/AndroidRuntime(850):  at java.lang.reflect.Method.invokeNative(Native Method)
11-26 12:18:36.137: E/AndroidRuntime(850):  at java.lang.reflect.Method.invoke(Method.java:511)
11-26 12:18:36.137: E/AndroidRuntime(850):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-26 12:18:36.137: E/AndroidRuntime(850):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-26 12:18:36.137: E/AndroidRuntime(850):  at dalvik.system.NativeStart.main(Native Method)
11-26 12:18:36.137: E/AndroidRuntime(850): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-26 12:18:36.137: E/AndroidRuntime(850):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Activity.setContentView(Activity.java:1881)
11-26 12:18:36.137: E/AndroidRuntime(850):  at com.example.fragmenttest.MainActivity.onCreate(MainActivity.java:12)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Activity.performCreate(Activity.java:5104)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-26 12:18:36.137: E/AndroidRuntime(850):  ... 11 more
11-26 12:18:36.137: E/AndroidRuntime(850): Caused by: java.lang.ClassCastException: com.example.fragmenttest.FirstView cannot be cast to android.app.Fragment
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Fragment.instantiate(Fragment.java:585)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Fragment.instantiate(Fragment.java:560)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.app.Activity.onCreateView(Activity.java:4709)
11-26 12:18:36.137: E/AndroidRuntime(850):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
11-26 12:18:36.137: E/AndroidRuntime(850):  ... 21 more

Why am I unable to run this? Please help.

UPDATE

As SO users mentioned, I changed my MainActivity

package com.example.fragmenttest;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

Now I have the following error

11-26 12:35:34.137: E/AndroidRuntime(968): FATAL EXCEPTION: main
11-26 12:35:34.137: E/AndroidRuntime(968): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fragmenttest/com.example.fragmenttest.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.os.Looper.loop(Looper.java:137)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread.main(ActivityThread.java:5041)
11-26 12:35:34.137: E/AndroidRuntime(968):  at java.lang.reflect.Method.invokeNative(Native Method)
11-26 12:35:34.137: E/AndroidRuntime(968):  at java.lang.reflect.Method.invoke(Method.java:511)
11-26 12:35:34.137: E/AndroidRuntime(968):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-26 12:35:34.137: E/AndroidRuntime(968):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-26 12:35:34.137: E/AndroidRuntime(968):  at dalvik.system.NativeStart.main(Native Method)
11-26 12:35:34.137: E/AndroidRuntime(968): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-26 12:35:34.137: E/AndroidRuntime(968):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.Activity.setContentView(Activity.java:1881)
11-26 12:35:34.137: E/AndroidRuntime(968):  at com.example.fragmenttest.MainActivity.onCreate(MainActivity.java:13)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.Activity.performCreate(Activity.java:5104)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-26 12:35:34.137: E/AndroidRuntime(968):  ... 11 more
11-26 12:35:34.137: E/AndroidRuntime(968): Caused by: java.lang.NullPointerException
11-26 12:35:34.137: E/AndroidRuntime(968):  at com.example.fragmenttest.FirstView.onCreateView(FirstView.java:19)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:900)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1184)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285)
11-26 12:35:34.137: E/AndroidRuntime(968):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
11-26 12:35:34.137: E/AndroidRuntime(968):  ... 21 more

解决方案

Your MainActivity must be extend FragmentActivity from the support library..

And in your onCreateView() of first fragment this is the first line

    View view = inflater.inflate(R.layout.fragment_view1,container,false);

and replace getView() with view

这篇关于无法加载与片段活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆