0

在我的 android 项目中,我需要将控件动态添加到我的主活动屏幕中。我创建了一个 xml (row.xml),它是在主屏幕上单击按钮时添加的。我想从 row.xml 中给出的控件(按钮)中捕获事件。

谁能帮我在哪里以及如何从新添加的布局中捕获 onClick 事件?

另外,我想添加许多子布局元素,是否需要为所有动态添加的子视图编写单独的 onClick 方法?

行.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_Time"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dip"
    android:orientation="horizontal" >


    <EditText
        android:id="@+id/editText_FromTime"
        android:layout_width="216dp"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:hint="@string/hintFromTime" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button_Delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnDelete" />
    </LinearLayout>

</LinearLayout>

因此,当我单击“添加时间槽”按钮时,我会得到一个新创建的包含两个元素的行。

当我点击删除按钮时,我想删除这一行。我是否还需要一个 viewID 才能删除这个新添加的视图?

4

2 回答 2

0

在列表适配器中创建一个onclicklistener,并将其设置为适配器的getView方法中的按钮。那应该行得通。

于 2012-04-11T12:08:36.327 回答
0

您可以将控件作为 Java 变量进行跟踪——不用担心动态 android xml。考虑在方法之外的顶部声明它们。

避免OnClickListener为每个控件添加新控件的一种方法是让您的类实现OnClickListener然后使用view.setOnClickListener(this). 或者创建一个覆盖onClick(View)并使用的子类setOnClickListener(MyListener)

您可以使用Layout.removeView(View)删除控件,只要您跟踪它们。

于 2012-04-11T12:09:25.613 回答