Java 外部布局按钮的侦听器

Java 外部布局按钮的侦听器,java,android,button,user-interface,listener,Java,Android,Button,User Interface,Listener,您好,我有一个项目,其中有一个活动和几个布局。布局中包含各种元素,例如按钮。我无法从主活动向这些侦听器添加按钮。活动中使用了方法onClick()(活动实现了视图。OnClickListener) 结果是一个按钮,没有动作。请帮帮我 UPD1: 我认为问题的出现是因为OnTouchListenercatch all touch事件也会单击 在OnTouch 改变 return true; 到 因此,事件不会被消耗,而是传播给其他侦听器我不理解这个问题。你能说得更清楚些吗?(活动实现View.O

您好,我有一个项目,其中有一个
活动
和几个
布局
。布局中包含各种元素,例如按钮。我无法从主
活动
向这些侦听器添加按钮。活动中使用了
方法onClick()
(活动实现了
视图。OnClickListener

结果是一个按钮,没有动作。请帮帮我

UPD1:


我认为问题的出现是因为
OnTouchListener
catch all touch事件也会单击

在OnTouch

改变

return true;


因此,事件不会被消耗,而是传播给其他侦听器

我不理解这个问题。你能说得更清楚些吗?(活动实现View.OnClickListener)???公共类MainActivity扩展活动实现View.OnTouchListener???否,活动实现ViewFlipper的OnTouchListener。Listen类实现OnClickListener,它被处理并单击Event。我需要为按钮分配一个侦听器。上面的代码没有得到正确的结果。您是如何在活动中实现公共布尔onTouch(View v,MotionEvent事件)的?
public boolean onTouch(View view, MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            fromPosition = event.getX();
            break;
        case MotionEvent.ACTION_MOVE:
            float toPosition = event.getX();
            if ((fromPosition - MOVE_LENGTH) > toPosition) {
                fromPosition = toPosition;
                flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_in));
                flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_out));
                flipper.showNext();
            } else if ((fromPosition + MOVE_LENGTH) < toPosition) {
                fromPosition = toPosition;
                flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_in));
                flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_out));
                flipper.showPrevious();
            }
        default:
            break;
    }
    return true;
}
    public class MainActivity extends Activity implements View.OnTouchListener {
private class listen implements View.OnClickListener {
    @Override
    public void onClick(View view) {
        makeMsg("Hello from onClick!", Toast.LENGTH_LONG);
        switch (view.getId()) {
            case R.id.conBut2: {
                makeMsg("Hello by Button2!", Toast.LENGTH_LONG);
                case R.id.regRad: {
                    makeMsg("Hello by RadioButton!", Toast.LENGTH_LONG);
                }
            }
            ;
            break;


        }
    }
}

    private void makeMsg(String txt, int dur) {
        Toast.makeText(this, txt, dur).show();
    }
}
return true;
return false;