java 管理对android tablelayout元素的点击

fsi0uk1n  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(111)

我需要管理如图所示的特定时间段。

我需要当我点击一个特定的时间,它打开一个新的片段,告诉我哪个元素被点击了。

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="15dp"
    android:id="@+id/tableLayoutWeek"
    >
    <!--riga dei giorni-->
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blueBlack"
        android:padding="20dp"

        >

        <TextView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="lun"
            android:textAllCaps="true"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="mar"
            android:textAllCaps="true"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="mer"
            android:textAllCaps="true"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="gio"
            android:textAllCaps="true"
            android:textColor="#FFFFFF" />

        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="ven"
            android:textAllCaps="true"
            android:textColor="#FFFFFF" />
    </TableRow>
    <!--riga delle 16-->
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/yellowRow"
        android:padding="20dp"
        android:id="@+id/row16"

        >

        <TextView
            android:id="@+id/lun16"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="16:00"
            android:textStyle="bold"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"
            />
        <TextView
            android:id="@+id/mar16"
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="16:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:tag="mer16"
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="16:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:tag="gio16"
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="16:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:tag="ven16"
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="16:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
    </TableRow>
    <!--riga delle 17-->
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/yellowRow"
        android:padding="20dp"

        >

        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="17:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="17:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="17:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="17:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="17:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
    </TableRow>
    <!--riga delle 18-->
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/yellowRow"
        android:padding="20dp"

        >

        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="18:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="18:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="18:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="18:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="18:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
    </TableRow>
    <!--riga delle 19-->
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/yellowRow"
        android:padding="20dp"

        >

        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="19:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="19:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="19:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="19:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"/>
        <TextView
            android:textStyle="bold"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:text="19:00"
            android:textAllCaps="true"
            android:textColor="@color/black"
            android:layout_margin="5dp"
            />
    </TableRow>

</TableLayout>

我尝试过这种方法,但总是得到行ID,而不是子ID。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    binding = FragmentWeekBinding.inflate(inflater, container, false);
    View root = binding.getRoot();
    binding.row16.setClickable(true);
    binding.row16.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int id = view.getId();
            Toast.makeText(getContext(), "pos:" + id, Toast.LENGTH_SHORT).show();
        }
    });
    return root;

}

我也尝试过标记,但它仍然不工作,有人有任何解决方案推荐吗?我将非常感激

pod7payv

pod7payv1#

在每个TextView上设定onClickListener。
示例:https://www.folkstalk.com/tech/onclicklistener-and-table-layout-with-example/
这是在Button上完成的。请更改为TextView。

相关问题