0

アプリの実行中に EditText ウィジェットを追加しようとしていますが、その方法がわかりません。それが可能であることを願っています。私がやりたいことは、ユーザーがスピナー リストから 1 つの項目を選択すると、編集テキストが表示されることです。たとえば、スピナーには人間の外観のプロパティが含まれており、ユーザーは「髪の形」または「目の色」の EditText フィールド、またはスピナーにあるものを追加するかどうかを決定できます。

以下のコードを実行しましたが、試してみると、スピナーからアイテムを選択しても何も起こりません。

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {

    switch(arg1.getId())
    {

    case R.id.parametersChoose: 

    LinearLayout test = (LinearLayout) findViewById(R.id.test);
    EditText field = new EditText(this);

    LayoutParams b = new LayoutParams(50, 30);
    field.setLayoutParams(b);
    field.setText("enter" + parametersChoose.getSelectedItem().toString());

    switch(parametersChoose.getSelectedItemPosition())
    {
    case 1:
        field.setId(1);

    }

    test.addView(field);

    }            
}

   <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android">


         <Button
            android:id="@+id/addWorkOut"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="save" />

         <TextView
             android:id="@+id/textView1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Set new Exercise type" />

         <EditText
             android:id="@+id/newExercise"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:ems="10" >

         </EditText>

         <Spinner
             android:id="@+id/workOutChoose"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />

         <Spinner
             android:id="@+id/parametersChoose"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />

            <ScrollView
                android:id="@+id/scroll"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <LinearLayout
                    android:id="@+id/test"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >



                    <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:ems="10" >
                    </EditText>


                </LinearLayout>

             </ScrollView>



       ></LinearLayout>
4

3 に答える 3

0

私は自分の問題を見つけました。switch2 つ以上のスピナーを使用していて、パラメーターでそれらを呼び出そうとするとView arg1、スピナー自体を指すのではなく、行になります。スピナー自体を呼び出すには、親ウィジェットを呼び出す必要があります。値は fromAdapterView<?> arg0です。コードは次のようにする必要があります。

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {

        switch(arg0.getId())
        {
    ....
    ....
    ....
于 2013-05-06T08:04:05.447 に答える
0

実行する前に edittext ウィジェットを作成しておいて、再度表示するまで実行時に非表示にしないのはなぜですか。表示したいときにプロパティを表示可能に設定するだけです。

于 2013-05-05T13:33:47.260 に答える