Android中的单个按钮上的两个文本?

时间:2016-01-27 07:49:39

标签: android android-button

我在Android Studio中有一个按钮:

<Button
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Event Name (23)" />

看起来像这样:

-------------------------------------
| Event Name (23)                   |
-------------------------------------

我想要的是一个按钮中的两段文字。

基本上,我想要在按钮的左侧,一个事件的名称......然后我想在按钮的右侧显示为该事件注册的人数,所以它看起来像这样:

-------------------------------------
| Event Name                   (23) |
-------------------------------------

这样的事情可能吗?

我是Android新手,所以请记住这一点。

7 个答案:

答案 0 :(得分:2)

请试试这个

  <RelativeLayout 
   android:id="@+id/btn"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="#ff0000"
   android:padding="10dp"
   >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:text="Event Name " />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="(23)" />

答案 1 :(得分:1)

您可以使用布局在其中显示两个文本。您可以在布局中添加侦听器。

答案 2 :(得分:1)

使用spannable字符串

String text;
SpannableString finalText = new SpannableString(text);
finalText.setSpan((new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), <start index of right String>, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
button.setText(finalText);

答案 3 :(得分:1)

您可以创建布局而不是按钮,然后在布局上执行点击事件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15dp"
    android:id="@+id/relLayout">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Event Name"
        android:layout_alignParentLeft="true"
        android:textSize="16sp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="(23)"
        android:textSize="16sp"/>

</RelativeLayout>

活动:

RelativeLayout relLayout = (RelativeLayout) findViewById(R.id.relLayout);

        relLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Implement Your login on RelativeLayout click
            }
        });

答案 4 :(得分:0)

您可以在drawable目录中添加名为item_color_grey.xml的文件。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@color/item_grey" />
    <item android:state_focused="true" android:drawable="@color/item_grey" />
    <item android:state_pressed="true" android:drawable="@color/item_grey" />
     <item android:drawable="@color/white" />
</selector>

答案 5 :(得分:0)

您可以使用以下方式执行您需要的任何操作。 在您的布局中定义按钮,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:background="@drawable/lay_back"
    >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Event Name"
    android:layout_alignParentLeft="true"
    android:textSize="26sp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="(23)"
    android:textSize="26sp"/>

在你的drawable文件夹中创建一个xml文件lay_back.xml并将下面的代码写入其中。

对于涟漪效应:(对于更高的API级别)

     <?xml version="1.0" encoding="utf-8"?>

     <ripple xmlns:android="http://schemas.android.com/apk/res/android"
      android:color="@color/white">
     <item android:drawable="@color/item_grey"/>
     </ripple>

对于选择器效果(较低的API):

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@color/white" />
    <item android:state_focused="true" android:drawable="@color/item_grey"       />
    <item android:state_pressed="true"      android:drawable="@color/item_dark_grey" />
 <item android:drawable="@color/item_grey" />
  </selector>

您可以将任何颜色存储在值目录的colors.xml中。

答案 6 :(得分:0)

即使这篇文章很老了。我找到了一个解决方案,就是在相对布局中设置两个按钮。

Button1的文字左对齐(clickable = false)和按钮的样式表。

Button2,文本右对齐(clickable = true)和按钮的样式表;并具有背景转移。

捕获活动侧,必须处理这两个按钮的启用和禁用状态。在处理主按钮的单击时。

让我知道是否有人在寻找类似的解决方案;在这种情况下,我可以发布示例代码。