2010-12-06 2 views
1

У меня есть пользовательский элемент управления в Android, который имеет текстовый вид, некоторые изображения и т. Д.Как сделать весь элемент управления доступным для Android?

Я хочу, чтобы весь элемент управления был доступен.

я объявил макет с:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:clickable="true" android:layout_width="fill_parent" android:layout_height="50px" android:layout_gravity="center_vertical"> 

, даже если у него есть что андроид: интерактивный атрибут установлен верно, событие щелчка не срабатывает.

Я делаю что-то неправильно?

ответ

3

В вашем основном коде деятельности, сделать что-то вроде этого

public class TestActivity extends Activity implements 
    OnTouchListener, OnLongClickListener, OnKeyListener, 
    OnClickListener, OnFocusChangeListener{ 

CustomUI = (CustomView) findViewById(R.id.custom_ui); 

    CustomUI.addListener(this); 
    CustomUI.setOnClickListener(this); 
    CustomUI.setOnFocusChangeListener(this); 
    CustomUI.setOnLongClickListener(this); 
    CustomUI.setOnTouchListener(this); 
    CustomUI.setOnKeyListener(this); 

}

Кроме того, вы не можете поставить атрибуты в вашем относительном макете, вы должны включить ваш пользовательский интерфейс он этот макет .. что-то вроде

<RelativeLayout 

    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 

<com.company.some.CustomView 

     android:id="@+id/custom_ui" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     /> 

    </RelativeLayout> 
Смежные вопросы