Java 膨胀类片段时出错:第10行xml
我正在构建一个带有滑动窗格的应用程序,运行时遇到问题。我一直在吃FCs。我对android开发相当陌生Java 膨胀类片段时出错:第10行xml,java,android,xml,fragment,slidingpanelayout,Java,Android,Xml,Fragment,Slidingpanelayout,我正在构建一个带有滑动窗格的应用程序,运行时遇到问题。我一直在吃FCs。我对android开发相当陌生 package com.anshikka.datagushalpha; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.SlidingPaneLayout; import android.view.View; public
package com.anshikka.datagushalpha;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.SlidingPaneLayout;
import android.view.View;
public class MainActivity extends FragmentActivity {
SlidingPaneLayout pane;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pane = (SlidingPaneLayout) findViewById(R.id.sp);
pane.setPanelSlideListener(new PaneListener());
if (!pane.isSlideable()) {
getSupportFragmentManager().findFragmentById(R.id.leftpane).setHasOptionsMenu(false);
getSupportFragmentManager().findFragmentById(R.id.rightpane).setHasOptionsMenu(true);
}
}
public class PaneListener extends FragmentActivity implements SlidingPaneLayout.PanelSlideListener {
public PaneListener()
{}
@Override
public void onPanelClosed(View view) {
System.out.println("Panel closed");
getSupportFragmentManager().findFragmentById(R.id.leftpane);
getSupportFragmentManager().findFragmentById(R.id.rightpane);
}
@Override
public void onPanelOpened(View view) {
System.out.println("Panel opened");
getSupportFragmentManager().findFragmentById(R.id.leftpane).setHasOptionsMenu(true);
getSupportFragmentManager().findFragmentById(R.id.rightpane).setHasOptionsMenu(false);
}
@Override
public void onPanelSlide(View view, float arg1) {
System.out.println("Panel sliding");
}
}
}
这是我的XML文件
<?xml version="1.0" encoding="UTF-8"?>
<android.support.v4.widget.SlidingPaneLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/sp">
<!-- Left side pane. (Master) -->
<fragment android:id="@+id/leftpane" android:name="com.anshikka.datagushalpha.MainActivity"
android:layout_width="190dp" android:layout_height="match_parent"
class:com.
android:layout_gravity="left" />
<!-- Right side page. (Slave) -->
<fragment android:id="@+id/rightpane" android:name="com.anshikka.datagushalpha.MainActivity"
android:layout_width="350dp" android:layout_height="match_parent"
android:layout_gravity="right" android:layout_weight="1" />
</android.support.v4.widget.SlidingPaneLayout>
看起来您的XML布局文件格式不正确。只需删除带有
class:com.
的行,看看它是否成功
<fragment android:id="@+id/leftpane" android:name="com.anshikka.datagushalpha.MainActivity"
android:layout_width="190dp" android:layout_height="match_parent"
class:com. <===== THIS LINE IS UNNECESSARY
android:layout_gravity="left" />
我解决了这个问题,将您正在解析的活动的全名添加到片段到清单中,包括com。路径,例如:
<activity
android:name="com.example.mainproject.PaneTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
com.ansikka.datagushalpha.main活动是一个片段还是一个活动(从名称上看是这样的)?不能将活动用作片段。活动包含片段。使用该名称属性,您试图告诉这两个片段它们是主活动。正如日志猫告诉您的,MainActivity不是片段,而是片段活动。您需要新的片段,您将无法在自身上调用MainActivity。还有那一类:com。?你把你打开的门关上了吗?我把它拿走了。但我仍然得到相同的FC错误。还有什么吗?我仔细查看了您的错误消息,发现试图实例化一个不是片段的类com.ansikka.datagushalpha.main活动。对,你的主要活动是一个活动,而不是一个片段。您需要定义一个片段并从XML中引用它。
<activity
android:name="com.example.mainproject.PaneTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".PaneTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>