Как кнопка получить фокус на клике в Android

1

В моем файле xml макета я создал экран с тремя кнопками с фоном, теперь, когда пользователь нажимает на него. Он не показывает никаких знаков, которые нажаты Как я могу достичь этой помощи.

Заранее спасибо

  • 0
    Вы установили onClickListener?
  • 1
    Я думаю, что вы должны Google, прежде чем отправлять вопрос. На это ответили во многих разных местах.
Показать ещё 1 комментарий
Теги:
android-layout

4 ответа

1
Лучший ответ

Вот ответ.

Чтобы указать различные состояния кнопок (сфокусированные, выбранные и т.д.), вы можете определить другое изображение для каждого состояния

Сохраните XML файл в папке res/drawable/folder проекта, а затем ссылайтесь на него как на чертеж для источника вашего ImageButton (в атрибуте android: src). Android автоматически изменит изображение в зависимости от состояния кнопки и соответствующих изображений, определенных в XML.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true"
       android:drawable="@drawable/button_pressed" /> <!-- pressed -->
   <item android:state_focused="true"
       android:drawable="@drawable/button_focused" /> <!-- focused -->
   <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
3

Не уверен, но нам нужно установить hover на xml

<item
        android:color="hex_color"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
  • 0
    Привет hasrhagile, я пробовал, но это не работает.
0

создайте эти три файла xml в папке с возможностью переноса. custom_background_focus.xml

{

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <stroke
        android:width="1dp"
        android:color="#111111" />

    <gradient
        android:angle="225"
        android:endColor="#fcfcfc"
        android:startColor="#fcfcfc" />

    <corners
        android:bottomLeftRadius="4dp"
        android:bottomRightRadius="4dp"
        android:topLeftRadius="4dp"
        android:topRightRadius="4dp" />

</shape>

custom_background_normal.xml

   <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >

        <stroke
            android:width="1dp"
            android:color="#333333" />

        <gradient
            android:angle="225"
            android:endColor="#999999"
            android:startColor="#999999" />

        <corners
            android:bottomLeftRadius="4dp"
            android:bottomRightRadius="4dp"
            android:topLeftRadius="4dp"
            android:topRightRadius="4dp" />

    </shape>

}

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true"
       android:drawable="@drawable/custom_background_focus" /> <!-- pressed -->
   <item android:state_focused="true"
       android:drawable="@drawable/custom_background_focus" /> <!-- focused -->
   <item android:drawable="@drawable/custom_background_normal" /> <!-- default -->
</selector>
0

Привет всем, мне удается найти ответ сам. что я сделал

    final Button home = (Button) findViewById(R.id.btnmaphome);
    home.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            home.setBackgroundResource(R.drawable.lodclick);
            // rest of the code
        }
    });

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню