2014-11-30 4 views
0

Я создал представление, расширяющее RelativeLayout, и я, что это, этот вид, чтобы иметь возможность обрабатывать события касания. Так что я подумал о том, чтобы реализовать OnTouchListener в моем пользовательский элемент управления, как это:Реализовать View.OnTouchListener на пользовательский контроль

class MyCustomControl extends RelativeLayout implements View.OnTouchListener { 
    public MyCustomControl (Context context) { 
     super(context); 
    } 

    public MyCustomControl (Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public MyCustomControl (Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    other_methods; 

    @Override 
    public boolean onTouch(View view, MotionEvent event) { 
     //event handle here. 
    } 
} 

Это не работает, но если я делаю что-то вроде этого, он делает:

MyCustomControl control = (MyCustomControl) LayoutInflater.from(context).inflate(R.layout.my_control, null); 
control.setOnTouchListener(control); 

Что должен Я делаю, чтобы встроенный (уже определенный и активированный) touchListener в моем пользовательском элементе управления?

+0

Вам все еще нужно добавить слушателя для того, чтобы работать. – Carnal

+0

Покажите мне свой конструктор. – Carnal

+0

Я видел, что на классах, которые расширяют Activity, это не нужно. – TGeorge

ответ

1

Я знаю, что уже поздно, но я решил мой случай, добавив

this.setOnTouchListener(this); 

конструктору

+0

Это помогло мне, спасибо! <3 –

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