为什么我的onClick在我的活动中不起作用?

时间:2014-03-16 08:26:12

标签: java android

我已经在该死的太阳下尝试了一切,让它发挥作用,我无法弄明白。

我的活动回复onTouchEvent但不回复onClick

我试过

implements View.OnClickListener

我试过

让我的活动接受点击但没有任何反应的所有其他事情。

我目前的代码是

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //removes title bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        //sets view to full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);


       RelativeLayout rl = (RelativeLayout) findViewById(R.id.muhLayout);
       rl.setOnClickListener(this);

    }

上面代码的问题是当我访问RelativeLayout时,我得到一个nullpointerexception。 我不知道为什么..我的布局存在,它是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">
</RelativeLayout>
XML中的

我尝试添加@+id/....并以这种方式引用它,同样的事情,我得到了一个N​​PE。

我的onClick方法看起来像这样

@Override
    public void onClick(View event) {
        // TODO Auto-generated method stub
        x = event.getX();
        y = event.getY();
        pixelColor = Color.RED;
        PixelParticle pp = new PixelParticle(this, x, y, 50, 50, pixelColor);
        setContentView(pp);
    }

PixelParticle扩展了一个视图并使用onDraw方法覆盖来绘制。当我使用onTouchEvent时,这一切都很完美。但我需要onClick才能工作。

有人可以帮我解决这个问题吗?

最后一件事......当我使用onTouchEvent并绘制我的位图时,究竟是什么画出来的? 由于View扩展视图并覆盖PixelParticle以进行绘制,因此绘制的图像为onDraw(Canvas canvas)。我假设它是RelativeLayout,它是View的子类,但我想确定。

0 个答案:

没有答案