在我的android项目中,我需要动态地将控件添加到我的主活动屏幕中。我创建了一个xml(row.xml),它在主屏幕上单击按钮时添加。我想从row.xml中给出的控件(按钮)中捕获事件。
有人可以帮助我从新添加的布局中捕获onClick事件的位置和方法吗?
另外,我想添加许多子布局元素,是否需要为动态添加的所有子视图编写单独的onClick方法?
row.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>
因此,当我点击Add Time slot按钮时,我会得到一个包含两个元素的新创建的行。
我想在单击“删除”按钮时删除此行。我是否还需要一个viewID来删除这个新添加的视图?
答案 0 :(得分:0)
在列表适配器中创建一个onclicklistener,并将其设置为适配器的getView方法中的按钮。这应该有用。
答案 1 :(得分:0)
您可以将控件跟踪为Java变量 - 不用担心动态的android xml。考虑在方法之外的顶部声明它们。
避免为每个控件添加新OnClickListener
的一种方法是让您的类实现OnClickListener
,然后使用view.setOnClickListener(this)
。或者创建一个子类,它覆盖onClick(View)
并使用setOnClickListener(MyListener)
。
只要您跟踪控件,就可以使用Layout.removeView(View)
删除控件。