【问题标题】:What is the meaning of class attribute in viewview中的class属性是什么意思
【发布时间】:2014-10-14 14:41:23
【问题描述】:

我在 xml 文件的视图中找到了以下类属性

class="com.example.android.apis.view.VideoPlayerActivity$Content"

http://developer.android.com/reference/android/view/View.html 在 android.xml 文件中使用完全限定的类名是什么意思? 通货膨胀时如何使用此类。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    有时您会发现默认组件不足以满足您的需求。您可以使用此class 属性来在 xml 文件中使用您自己的组件。

    例如,假设您创建了自己的组件,该组件扩展了TextView 并具有一些附加功能,并将其命名为MyTextView。您可以像这样在 xml 文件中使用它:

    <view
      class="com.project.my.MyTextView" 
      id="@+id/note"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" />
    

    您可能想进一步阅读 Android 文档:http://developer.android.com/guide/topics/ui/custom-components.html

    【讨论】:

      【解决方案2】:
      <view
        class="A_public_view_Inner_class_full_package" 
        id="@+id/note" />
      

      相当于

      <A_public_view_class_full_package
        id="@+id/note"
        ...>
      
      <A_public_view_class_full_package/>
      

      但是 在 Java 编程中使用。

      回到你的情况。因为 VideoPlayerActivity$Content 是 Inner 类所以你必须使用

      您不能将此定义用于内部类

      <com.example.android.apis.view.VideoPlayerActivity$Content
        id="@+id/note"
        .... />
      

      更新:有人可能会问这个问题:为什么 Android 不使用 而不是使用强> 。 简单的答案是 XML 元素名称不能包含出现在 Inner 类名称中的“$”。

      结论:

      • 如果视图类不是Inner 类,使用普通的方式在XML 中定义View。
      • 如果视图是内部类 --> 使用

      【讨论】:

      • 我只是想知道为什么内部类的语法不同。我们可以使用 $ 符号来区分。为什么我们不能使用没有类标记的内部类的定义呢?
      猜你喜欢
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      相关资源
      最近更新 更多