【问题标题】:setText in custom view自定义视图中的 setText
【发布时间】:2011-03-17 03:21:50
【问题描述】:

我根据在线教程创建了一个自定义类。它工作得很好,但我想做的是让我可以设置视图的文本,就像我设置任何其他视图一样。那是如何实现的。这是自定义视图的 xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/file_image_holder"
android:layout_width="110dip"
android:layout_height="110dip"
android:src="@drawable/pdf_icon" />
<TextView
android:id="@+id/file_name_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="File Name Here" />
</LinearLayout>

我想要实现的是这个

FileView fileView = new FileView(this)
fileView.setText("text")

【问题讨论】:

    标签: android text custom-view


    【解决方案1】:
    TextView filename = (TextView)findViewById(R.id.file_name_holder);
    filename.setText("someFile.exe");
    

    另一方面...您可以使用提示为您的用户提供一个灰色的文本提示,他们在输入文件名时不必删除该提示。在您的 XML 中,将您的 TextView 的 android:text 替换为 android:hint

    【讨论】:

    • 我是把代码放在自定义视图类中,还是放在活动中?
    • 您的活动中有两行代码。 android:hint 进入您的 XML 以替换 TextView 中的 android:text。
    • 我想要做的是让它这样我可以用那个代码来做这个 FileView fileView = new FileView(this) fileView.setText(this) 我希望它在其中设置 textview 的文本自定义视图。我觉得如果我通过 findviewbyid 来做就会有问题,因为在同一个布局中会有多个
    • 在您的示例中,fileView 是整个视图,而不是 TextView。我不知道如何完成你想要做的事情。对不起。
    • 我想通了。 filView 是包含多个视图的自定义视图。在 customView 的代码中,只需在您创建的 customview 中创建一个引用 textview id 的方法,然后以这种方式设置文本。你的建议是对的,只需在 customview 中设置 setText
    【解决方案2】:

    将“此处的文件名”替换为“您想要的文本”或@string/name_of_string_in_string.xml

    或者其他人回答的java方式

    【讨论】:

    • Narhem 是对的!使用strings.xml 是个好主意。您可以通过突出显示 XML 中的文本,然后从 Refactoring -> Android 菜单中选择 Extract Android String 来简化该过程。这会自动将您的文本提取到您的字符串文件中,并将@string/name_of_string_in_string.xml 放入您的 XML 文件中。
    • 我不想在 xml 中这样做。我在那里只有文字,所以我可以看到它的样子。我正在尝试以编程方式进行。
    【解决方案3】:

    这里 no_internet 是包含 xml 视图。在包含视图中包含文本视图。您可以在包含自定义文本视图中设置文本,例如 ....

     no_internet     = view.findViewById(R.id.no_internet);
      ((TextView) no_internet).setText(R.string.no_internet_connection);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2011-08-23
      相关资源
      最近更新 更多