代码之家  ›  专栏  ›  技术社区  ›  Jason Axelrod

安卓系统中一个按钮上两条短信?

  •  2
  • Jason Axelrod  · 技术社区  · 8 年前

    我在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 回复  |  直到 8 年前
        1
  •  2
  •   Bhargav Thanki    8 年前

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

    <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
                }
            });
    
        2
  •  2
  •   Manish    8 年前

    请试试这个

      <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)" />
    

        3
  •  1
  •   hongbochen    8 年前

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

        4
  •  1
  •   Ankit Aggarwal    8 年前

    使用可扩展字符串

    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);
    
        5
  •  0
  •   hongbochen    8 年前

    您可以添加名为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>
    
        6
  •  0
  •   Akhilesh Awasthi    7 年前

    你可以用下面的方法做任何你需要的事情。 在您的布局中定义如下按钮:

    <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"/>
    

    在您的可绘制文件夹中创建一个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>
    

    您可以给出存储在颜色中的任何颜色。xml的值目录。

        7
  •  0
  •   Jileshl    6 年前

    即使这个帖子很旧。我找到了一个解决方案,就是在相对布局中有两个按钮。

    按钮1具有文本左对齐(clickable=false)和按钮样式表。

    按钮2具有文本右对齐(clickable=true)和按钮样式表;并且具有不同的背景。

    catch,则必须处理这两个按钮的启用和禁用状态。仅处理主按钮的单击。

    如果有人在寻找类似的解决方案,请告诉我;在这种情况下,我可以发布示例代码。