无法理解此代码功能

时间:2017-01-24 16:03:12

标签: android

<LinearLayout 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:gravity="center"
 android:orientation="vertical"
 tools:context="com.bignerdranch.android.geoquiz.CheatActivity">
 <TextView
  android:id="@+id/answer_text_view"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:padding="24dp"
  tools:text="Answer"/>

我是编程新手。我从Big Nerd Ranch编程书开始。我遇到了这段代码。在书中,它被声明为:

  

“此命名空间允许您覆盖窗口小部件上的任何属性   在Android Studio预览中以不同方式显示它的目的。由于TextView具有文本属性,   您可以为它提供文字虚拟值,以帮助您了解它在运行时的外观。该   值“答案”永远不会出现在真正的应用程序中。方便!“

这究竟意味着什么?我是全新的。我知道这是个愚蠢的问题,请帮助我。

3 个答案:

答案 0 :(得分:2)

感谢这一行

xmlns:tools="http://schemas.android.com/tools"

您可以在所有XML中使用

tools:text="Answer"

感谢这一行

xmlns:android="http://schemas.android.com/apk/res/android"

您可以在所有XML元素中使用android属性,例如

android:id="@+id/answer_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="24dp"

你正在读的书是一本好书,继续保持不要放弃!

答案 1 :(得分:0)

好。正如我所看到的,这看起来像你的书的作者指的是你的TextView answer_text_view被称为TextView的{​​{1}}将在代码中动态更改,以便初始值在导出时,您的实际应用程序中将显示TextView answerTextView = (TextView) findViewById(R.id.answer_text_view); answerTextView.setText("some text");

TextValue

此代码会更改代码中TextView的{​​{1}}。您必须将xml-attributetools:text)想象为xml-preview的参考。此属性不会影响应用程序中的文本,因为该属性的属性为android:text。在这种情况下,您甚至可以使用android:text,因为它会在以后动态更改。 android:text属性为您执行textView.setText(),而tools:text只会在预览中显示它。

答案 2 :(得分:0)

Tools基本上是您可以添加到TextView的额外属性的集合,可以在Android Studio中设计布局时为您提供帮助。在此特定示例中,tools:text允许您将假值放入TextView,这只会出现在Android Studio的布局预览中。

这将允许您在Android Studio中设计布局时查看TextView的外观,但在构建“真实”版本时,您不必担心从布局中删除虚拟文本用于手机的应用程序。

另请参阅:Tools Attribute Reference