【问题标题】:How do I dynamically add buttons using Java in a given XML layout file in android studio?如何在android studio的给定XML布局文件中使用Java动态添加按钮?
【发布时间】:2015-10-03 18:38:49
【问题描述】:

我对 Android 开发还很陌生。

我想创建一个具有按钮(组名)水平滚动视图的屏幕。每次单击组名时,它都会在这些按钮下方显示成员(我假设我必须创建一个包含成员列表视图的片段。我还没有到最后一部分。我能够创建一个水平滚动在 XML 中查看并在 XML 文件中添加 6 个按钮。但我想做的是使用 Java 查找每次调用 onCreate 时的组数,因此它可以根据组创建适当数量的按钮。(组名称为目前存储在一个临时的ArrayList中(用于测试目的),我使用arrayList.size()来获取需要创建的按钮的数量.我遇到的困难是弄清楚如何在Horizo​​ntalScrollView里面的LinearLayout里面创建这些按钮RelativeLayout。我在创建一个添加按钮的布局时搞砸了,但我不知道如何创建嵌套布局,或者访问我想使用 Java 在其中创建按钮的 LinearLayout。这是我的 XML 文件(我创建了一个测试按钮。那个按钮 l位置是我想使用 Java 创建按钮的地方。如果可能的话,我不想在那里用 XML 写任何东西。每次创建新组时,都必须创建一个按钮):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFBB00">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/horizontalScrollView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:id="@+id/buttonList">
                    <Button
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Click Me 1"
                        android:id="@+id/button"
                        android:layout_alignParentTop="true"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentStart="true" />
            </LinearLayout>
    </HorizontalScrollView>
</RelativeLayout>

如何在此 LinearLayout 中使用我的 Java 类添加按钮?

【问题讨论】:

    标签: java android xml android-layout


    【解决方案1】:

    使用此链接how to add button dynamically in android?,还有另一种使用循环的方法,阅读此article 以使用循环制作按钮

    【讨论】:

    • 感谢您的快速回复。我试过了,它有效。我将学习并弄乱循环链接。我在想有一些复杂的解决方案,但您的回答和您提供的链接非常有意义。
    • 很高兴它帮助了你:)
    【解决方案2】:

    由于您在谈论动态内容,您可能想尝试像水平列表视图这样的东西并创建一个适配器,而不是在运行时创建一堆按钮。这样做会有点慢,而且会占用更多资源。

    这是一个使用 RecyclerView 的示例: How to build a Horizontal ListView with RecyclerView?

    【讨论】:

    • 我会记住这一点。但就目前而言,我更关心基本功能,并为我和合作伙伴正在开发的应用程序提供一个简单的屏幕。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 2012-07-29
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多