为什么没有" com。"在这个XML中我的类引用前面

时间:2015-12-29 17:39:21

标签: android xml android-fragments

在我的content_main.xml文件中,我有一个片段,我从该片段中引用了一个类。我关注的教程让我将com.放在我的完全限定的类引用之前,但这给了我一个错误"无法解析符号' multipanelfragment'"。当我删除com.并将其保留在下面的代码示例中时,它似乎工作正常。我一直以为你需要com.,为什么没有呢?

谢谢!

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    android:animateLayoutChanges="true"
    tools:context="netgenes.multipanefragment.MyActivity"
    tools:showIn="@layout/activity_my">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_panel"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        class="netgenes.multipanefragment.MainPanelFragment" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

从表面上看,您的tools:context属性也使用了netgenes.multipanefragment软件包名称,在创建此项目时,您根本没有在软件包名称中添加com

当您使用XML引用项目中的类时,框架需要能够在应用程序的类路径中找到该类。为此,它需要类的完整路径,包括Java包。

如果您的代码全部在com.myapp包中,那么您将引用类似com.myapp.MainPanelFragment的类。由于您的代码位于netgenes.multipanefragment包中,因此您可以使用netgenes.multipanefragment.MainPanelFragment