0

私の Android プロジェクトでは、メインのアクティビティ画面にコントロールを動的に追加する必要があります。メイン画面のボタンクリックで追加される1つの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>

したがって、[タイム スロットの追加] ボタンをクリックすると、2 つの要素を含む新しく作成された行が表示されます。

削除ボタンをクリックしたときにこの行を削除したい。この新しく追加されたビューを削除するには、viewID も必要ですか?

4

2 に答える 2

0

リスト アダプタで onclicklistener を作成し、アダプタの getView メソッドでボタンに設定します。それはうまくいくはずです。

于 2012-04-11T12:08:36.327 に答える
0

コントロールを Java 変数として追跡できます。動的な Android xml について心配する必要はありません。メソッドの外側で、それらをすべて上部で宣言することを検討してください。

OnClickListenerコントロールごとに新しいものを追加しないようにする 1 つの方法は、クラスに を実装してOnClickListenerから使用させることview.setOnClickListener(this)です。onClick(View)または、オーバーライドして使用するサブクラスを作成しますsetOnClickListener(MyListener)

Layout.removeView(View)それらを追跡している限り、コントロールを削除するために使用できます。

于 2012-04-11T12:09:25.613 に答える