gpt4 book ai didi

Android将布局划分为部分并为其分配计数器

转载 作者:行者123 更新时间:2023-11-30 03:38:28 26 4
gpt4 key购买 nike

我正在从事一个测试用户行为的项目。这是我的 XML 布局

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<RelativeLayout
android:id="@+id/TouchArea"
android:layout_width="240dp"
android:layout_height="400dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#800ff4ff" >

<LinearLayout
android:id="@+id/grid1"
android:layout_width="60dp"
android:layout_height="100dp"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid2"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/grid1"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid3"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/grid2"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid4"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/grid3"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid5"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/grid1"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid6"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_below="@+id/grid2"
android:layout_toLeftOf="@+id/grid3"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid7"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignTop="@+id/grid6"
android:layout_toLeftOf="@+id/grid4"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid8"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignLeft="@+id/grid4"
android:layout_alignTop="@+id/grid7"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid9"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/grid10"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid10"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_below="@+id/grid6"
android:layout_toLeftOf="@+id/grid7"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid11"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignLeft="@+id/grid7"
android:layout_alignTop="@+id/grid10"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid12"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignBottom="@+id/grid11"
android:layout_alignParentRight="true"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid13"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/grid9"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid14"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignLeft="@+id/grid10"
android:layout_alignTop="@+id/grid13"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid15"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/grid11"
android:background="#FFFFFF"
android:orientation="vertical" >
</LinearLayout>

<LinearLayout
android:id="@+id/grid16"
android:layout_width="60dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_below="@+id/grid12"
android:background="#000000"
android:orientation="vertical" >
</LinearLayout>


</RelativeLayout>

这是它的样子,相对布局内有 16 个网格。

enter image description here !

我想做的是为每个布局分配计数器,每当用户的手指穿过这个网格时,计数器就会加 1。但是,当我尝试添加 touchListener 并重写 onTouch 方法时,它会抛出空指针异常,所以我需要调用调度触摸事件。但是在 dispatchTouchEvent 中,我不确定如何分别获取每个 View 。希望你能帮忙

最佳答案

您可以为每个可点击布局设置 android:clickable="true"。然后您可以实现 OnClickListener 来捕获每个事件。

public class MyClass implements View.OnClickListener {

// set your on click listeners in onCreate or something

@Override
public void onClick(View v) {

switch(v.getId()) {
case R.id.grid1:
// do something
case R.id.grid2:
// do something
case R.id.grid3:
// do something

// etc
}
}

关于Android将布局划分为部分并为其分配计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16241037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com