2016-01-27 3 views
2

У меня есть кнопка в Android Studio:Два текста на одной кнопке в Android?

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

Это выглядит следующим образом:

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

То, что я хотел бы два куска текста в одной кнопки.

В принципе, я хочу в левой части кнопки, название события ... тогда я хочу, чтобы в правой части кнопки было зарегистрировано количество людей для события, так что это выглядит так :

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

Возможно ли это как можно?

Я совершенно новичок в Android, поэтому имейте это в виду.

+0

check 'SpannableString' –

ответ

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 
      } 
     }); 
+0

Как я мог бы сделать макет похожим на кнопку? И имеют те же реакции, что и кнопка ... например, исчезает/вспыхивает, когда вы нажимаете/удерживаете кнопку. –

+0

Вы можете создать гибкий XML-файл на основе ваших потребностей и установить в качестве фона макет. –

+0

Как это сделать? –

1

Вы можете использовать макет, чтобы отобразить в нем два текста. И вы можете добавить слушателя в макет.

+0

Но тогда это не похоже на кнопку ... как бы я получил макет, чтобы он выглядел как кнопка? следуйте за темой приложения и получайте одинаковые ответы, например, когда вы нажимаете на кнопку, и кнопка мигает. –

+0

Вы устанавливаете фон кнопки на селектор и имеете разные чертежи для разных состояний. Выделяемыми могут быть фигуры с закругленными углами. –

+0

Вы можете написать drawable.Like: – hongbochen

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

+0

Как бы я мог сделать макет похожим на кнопку? И имеют те же реакции, что и кнопка ... например, исчезает/вспыхивает, когда вы нажимаете/удерживаете кнопку. –

0

Вы можете добавить файл с именем item_color_grey.xml в вас Drawable directory.The код, как это :

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

И в вашей вытяжке папке создать 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> 

Для Selector эффекта (Нижний 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 каталога значений.

0

Даже если этот пост довольно старый. Я нашел решение для этого, имея две кнопки внутри относительной компоновки.

Button1 с текстом слева выравнивание (clickable = false) и таблица стилей.

Button2 имеет право выравнивания текста (clickable = true) и таблицу стилей; и имеющие фоновой трансперент.

поймать на стороне действия, нужно будет обрабатывать состояние включения и выключения для обеих этих кнопок. При работе с кликом только для основной кнопки.

Сообщите мне, если кто-то ищет аналогичное решение; в этом случае я могу разместить образец кода.

Смежные вопросы