Android onClickListener未为子视图触发

Android onClickListener未为子视图触发,android,onclick,android-relativelayout,onclicklistener,Android,Onclick,Android Relativelayout,Onclicklistener,我正在开发一个应用程序,它使用onClickListeners翻转瓷砖。我把整件事都安排在一个相对的房间里。然后,我有第二个RelativeLayout来包含我的所有磁贴,以便于清除和添加。我还有其他各种在xml中预定义的按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/boardlayout" xmlns:tools="http://

我正在开发一个应用程序,它使用onClickListeners翻转瓷砖。我把整件事都安排在一个相对的房间里。然后,我有第二个RelativeLayout来包含我的所有磁贴,以便于清除和添加。我还有其他各种在xml中预定义的按钮

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/boardlayout"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/board"
    tools:context=".MainActivity" >

    <RelativeLayout
        android:id="@+id/mainlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </RelativeLayout>

    <ImageView
        android:id="@+id/menuButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/skill2Button"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_menu" />

</RelativeLayout>

在代码中,我添加了平铺,这是带有自定义操作的ImageView。我还向它们添加onClickListeners。grid变量是上面显示的我的mainlayout RelativeLayout

private void createTiles(){
    //Create the tiles
    int j = 0;
    Tile t;
    for(int i = 0; i < 30; i++){

        int r = i/5;
        int c = j%5;
        t = new Tile(this, r, c);
        t.setOnClickListener(tileClicked);

        j++;
        if(j == 5)
            j=0;            

        grid.addView(t);
    }
}
private void createTiles(){
//创建瓷砖
int j=0;
瓷砖t;
对于(int i=0;i<30;i++){
int r=i/5;
int c=j%5;
t=新瓷砖(此,r,c);
t、 setOnClickListener(tileClicked);
j++;
如果(j==5)
j=0;
grid.addView(t);
}
}
问题是,在旧的Android版本中,这些互动程序似乎永远不会触发点击事件。我在tile中添加了onClickListeners,然后在RelativeLayout上添加了一个,只是为了测试,RelativeLayout获得事件,但是tile没有

菜单ImageView(如上面的xml所示)也有一个onClickListener,它会被触发

在较新的安卓版本中,这很好用。这让我想知道旧版本是否存在从代码中添加的视图传递事件的问题

有人能告诉我旧版本的错误吗

试试这个

private void createTiles(){
    //Create the tiles
    int j = 0;
    Tile t[30];

    for(int i = 0; i < 30; i++){

        int r = i/5;
        int c = j%5;
        t = new Tile(this, r, c);
        t[i].setOnClickListener(this);

        j++;
        if(j == 5)
            j=0;            

        grid.addView(t);
    }
}

可以尝试
setOnTouchListener()
android:clickable=“true”
属性。除此之外,你所拥有的似乎应该正常工作。我尝试了这两种方法,以及多种不同方法的组合,但都没有成功。我已经用尽了我能想到的一切。我快发疯了。你解决过你的问题吗?我也有类似的问题。。。
 @Override
    public void onClick(View v) {
        switch(v.getId()){

          case // switch the ids of your views by calling getId method on them           
        }
    }