我想以编程方式向我的android Button添加多个字符串(而不是通过XML)

时间:2015-10-17 01:56:07

标签: java android xml button

我正在尝试将三个字符串格式化为一个Android按钮。第一个字符串应该是按钮的大约30%,第二个应该是大约50%,其余的是第三个按钮。每个文本应该在一定长度内。我怎样才能做到这一点?

在搜索了许多可能的解决方案后,我想出的是创建3个不同的按钮并将它们组合在一起。这不是理想的,但它是一个开始。有更好的方法吗?

这是我到目前为止所尝试的:

Java:

LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayout_buttons);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

Button addButton = new Button(this);
Button numPlayerButton = new Button(this);
Button lobbyButton = new Button(this);
Button locationButton = new Button(this);

ll.addView(addButton, lp);
ll.addView(numPlayerButton, lp);
ll.addView(lobbyButton, lp);
ll.addView(locationButton, lp);

XML:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/linearlayout_buttonlist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/linearlayout_buttons"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <!-- THIS IS WHERE THE BUTTONS GO!!!!!! -->
        </LinearLayout>
    </LinearLayout>
</ScrollView>

我使用此代码的目标是使用内部线性布局水平创建按钮,我认为外部线性布局将在下一行(垂直)上创建下一次按钮迭代。我通过循环以编程方式创建了按钮。

2 个答案:

答案 0 :(得分:1)

如果要单击窗口小部件然后执行某些操作(如按钮那样),则可以使用布局并向其添加onClickListener。在此布局中,您可以根据需要添加字符串。

简单地这样做:

  1. 在XML中写一个RelativeLayout并给它一个id。
  2. 在RelativeLayout中添加三个textView并根据需要放置它们。
  3. 在Java中注册此RelativeLayout并向其添加onClickListener。
  4. 对于Java部分:

    RelativeLayout ThreeStringLayout = (RelativeLayout) view.findViewById(R.id.three_string_layout);
                ThreeStringLayout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view1) {
                        //do things here
                    }
                });
    

    我在Fragment中实现了它,如果你在Activity中使用它,你需要修改它。 祝你好运。

答案 1 :(得分:0)

使用标准的Android按钮(我知道)无法实现。您必须使用带有textviews的线性布局。我可以解释一下,如果需要帮助,这将如何起作用