无法加载与片段活动 [英] Unable to load the activity with fragments
问题描述
这是片段
我的第一个TIMR运行。看一看下面的code。
activity_main.xml
< RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:以下属性来=@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_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:机器人=http://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 =:/>中的Android 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:机器人=http://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_centerHorizontal =真
机器人:layout_marginTop =190dp
机器人:文本=查看2
机器人:textAppearance =:/>中的Android ATTR / textAppearanceLarge?
<按钮
机器人:ID =@ + ID / secondViewBtn
风格=机器人:ATTR / buttonStyleSmall
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_below =@ + ID / secondViewText
机器人:layout_centerHorizontal =真
机器人:文本=按钮/>
< / 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屋!