0

ユーザーの指示に従って、ビュー (textview または EditText) をレイアウトに動的に追加したいと考えています。私は物事を理解し、それらがどのように機能するかを学ぶためだけにこれを開発しています。私のXMLファイルは次のとおりです

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

    <LinearLayout 
    android:id="@+id/email"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
        <TextView 
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="email1"
        />
        <EditText 
        android:id="@+id/edit1" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="enter mail "
        />

     </LinearLayout>    

<LinearLayout 
    android:id="@+id/phones"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
        <TextView 
        android:id="@+id/text2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="phone number"
        />
        <EditText 
        android:id="@+id/edit2" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="enter phone "
        />

</LinearLayout>   

<LinearLayout
    android:id="@+id/myButtons"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="add mail"
        android:onClick="addmail"
                    />
     <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="add phone"

                    />
</LinearLayout>
</LinearLayout>

ここに 2 つのボタンがあります。ユーザーがaddmailをクリックすると、レイアウトに編集テキストを追加したい(IDが「email」のLinearLayoutの最初の電子メールEditTextの下。ボタンのaddmailにandroid:onClickを設定し、addmail関数は次のとおりです:

public void addmail(){
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams((LayoutParams. WRAP_CONTENT)   ,    (LayoutParams.WRAP_CONTENT));

    EditText edittv = new EditText(getApplicationContext());
    edittv.setLayoutParams(lp);

    LinearLayout ll1=(LinearLayout)findViewById(R.id.email);

    ll1.addView(edittv);



}

しかし、コードは機能していません。どのような変更が必要ですか? どこが間違っていますか。私のコンセプトは間違っていますか?前もって感謝します

4

1 に答える 1

1

ここでは使用しないApplication Contextでください: EditText edittv = new EditText(getApplicationContext());、特定Activity Contextのものを使用するだけで問題が解決します。そう願っています:D!

于 2013-01-27T16:26:59.793 に答える