Android以编程方式更改按钮上的文字

时间:2015-05-19 16:38:01

标签: android button android-linearlayout dynamically-generated

我正在制作一个4宽,9高的按钮网格,所有的按钮都是不可见的,没有文字,我然后以编程方式向它们添加文字并使它们可见(基本上我使用隐形按钮,因为任何36个按钮可以看到由于使它们可见的代码(它基于我正在解析的XML文档)我使用LinearLayout来做这个,所以我有一个Vertical LinearLayout,包含9个Horizo​​ntal LinearLayouts,每个按钮有4个按钮,所有这些都有wrap_content高度和宽度和重量1(不确定这是否可能导致问题,因为我不完全确定这些参数如何工作)。

我的问题是,一旦我进入添加文本,文本可能会有不同的长度,所以我的按钮最终形成奇怪的形状,有些更宽或比其他更高,有没有办法以某种方式做到这一点这意味着它们都会以相似的尺寸结束?或者我的隐形按钮会弄乱吗?或者有更好的方法来做我正在做的事情吗?

我担心使用固定大小的按钮,因为我认为如果文字太长会导致问题。

    <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<LinearLayout
    android:orientation="vertical"
    android:id="@+id/soulOneLL"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:layout_height="wrap_content">


        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="soulOne"
            android:text="@string/SoulOne"
            android:id="@+id/btnSoul1" />

    </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
    <Button
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:visibility="invisible"
        android:layout_height="wrap_content"
        android:onClick="soulOneRowColumn"
        android:id="@+id/btnSoulOnRow8Column0" />

        <Button
   android:visibility="invisible"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="soulOneRowColumn"
            android:id="@+id/btnSoulOneRow8Column1" />

        <Button
   android:visibility="invisible"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="soulOneRowColumn"
            android:id="@+id/btnSoulOneRow8Column2" />

        <Button
   android:visibility="invisible"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="soulOneRowColumn"
            android:id="@+id/btnSoulOneRow8Column3" />
        </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
            <Button
   android:visibility="invisible"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:onClick="soulOneRowColumn"
                android:id="@+id/btnSoulOneRow7Column0" />

            <Button
   android:visibility="invisible"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:onClick="soulOneRowColumn"
                android:id="@+id/btnSoulOneRow7Column1" />

            <Button
   android:visibility="invisible"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="soulOneRowColumn"
            android:id="@+id/btnSoulOneRow7Column2" />
            <Button
   android:visibility="invisible"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:onClick="soulOneRowColumn"
                android:id="@+id/btnSoulOneRow7Column3" />

    </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow6Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow6Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow6Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow6Column3" />

            </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow5Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow5Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow5Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow5Column3" />


            </LinearLayout>


            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow4Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow4Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow4Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow4Column3" />

            </LinearLayout>
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow3Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow3Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow3Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow3Column3" />

            </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow2Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow2Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow2Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow2Column3" />

            </LinearLayout>


            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow1Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow1Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow1Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow1Column3" />

            </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow0Column0" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow0Column1" />

                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow0Column2" />
                <Button
   android:visibility="invisible"
                    android:layout_width="wrap_content"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:onClick="soulOneRowColumn"
                    android:id="@+id/btnSoulOneRow0Column3" />

            </LinearLayout>


        </LinearLayout>


</ScrollView>

2 个答案:

答案 0 :(得分:1)

在每个按钮上,您可以提供android:maxLength属性和android:maxLines属性。这些会将文本限制在一定的大小和长度,保证它们的大小都相同。

答案 1 :(得分:0)

根据提供的答案决定,没有什么可以按照我想要的方式完成,所以我改变了它,以便不是在按钮上显示文本,而是弹出一个对话框,其中包含一些信息,无论如何我想要的东西。