我正在开发一个使用 onClickListeners 翻转图块的应用程序。我在一个RelativeLayout 中有整个东西。然后我有第二个 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>
在代码中,我添加了 Tiles,它们是带有我的自定义操作的 ImageView。我还向他们添加了 onClickListeners。网格变量是我上面显示的 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);
}
}
问题在于较旧的 Android 版本,这些图块似乎从未触发点击事件。我将 onClickListeners 添加到图块中,然后在 RelativeLayout 上添加一个只是为了测试,RelativeLayout 获取事件,但图块没有。
菜单 ImageView(显示在上面的 xml 中)也有一个 onClickListener,它会被触发。
在较新的 Android 版本中,这可以正常工作。这让我想知道旧版本是否存在从代码中添加的视图传递事件的问题。
有人可以告诉我我在旧版本中做错了什么吗?