1

アクティビティにコントロールを動的に追加しています。同時に、編集ボックスとボタンを追加していますが、画像の配置に問題があります。

ここに画像の説明を入力

これは、editText と Button をアドバタイズし、垂直方向に配置された線形レイアウトに戻る私のコードです。

 LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(0);

        final EditText textView = new EditText(this);
        textView.setLayoutParams(lparams);
        textView.setSingleLine(true);

        final LayoutParams lparams1 = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        final Button button = new Button(this);
        textView.setLayoutParams(lparams1);


        if(id == R.id.new_alternate_number_button)
        {
            if(contactNumber == "")
            {
            textView.setHint("Enter contact Number");
            }
            else
            {
             textView.setText(contactNumber);
            }
            textView.setInputType(InputType.TYPE_CLASS_PHONE); //to popup numpad
        }
        else
        {
            if(contactEmailID == "")
            {
                textView.setHint("Enter Email ID      ");       
            }
            else
            {
                textView.setText(contactEmailID);
            }

        }
        button.setBackgroundResource(R.drawable.ic_delete);

        button.setBackgroundResource(R.drawable.ic_delete);    
        button.setOnClickListener(deleteView);

        layout.addView(textView);
        layout.addView(button);

textView.post(new Runnable() {
            public void run() {
                textView.requestFocus();
                  InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                  imm.showSoftInput(textView, InputMethodManager.SHOW_IMPLICIT);

            }
        });

        return layout;   

私のXMLファイルでは、整列が垂直である線形レイアウトを宣言しました。つまり、アイコンは画面の最後に配置し、EditTextは左揃えにする必要があります..また、EditTextと画像の間にスペースが必要です..

前もって感謝します

4

3 に答える 3

1

これは、Button と EditText の間にスペースを追加する方法です。

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams
    (LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(50, 0, 0, 0); // Adding margin to the left of your button
Button yourButton = new Button(this);
yourButton.setText("some text");
linearLayout.addView(yourButton, layoutParams);

setMargins メソッドのパラメーターのシーケンス:

android:layout_marginLeft
android:layout_marginTop
android:layout_marginRight
android:layout_marginBottom

setMargins メソッドの詳細については、こちらをご覧ください。

于 2012-10-26T07:17:11.277 に答える
1

LayoutParams は、FILL_PARENT (または MATCH_PARENT) ではなく、Width の WRAP_CONTENT に設定されています。

同様のケースで使用する「パターン」は、新しい行/セクションを動的に追加しているにもかかわらず、その行の xml ファイルにレイアウトを保持し、動的に膨張させて ID で要素を見つけることです。そしてそれらにバインドします。この場合を除いて、リスト項目を処理する方法と似ていますが、リストを使用していません。

レイアウトを XML ファイルに保持することで、見たいもののプロトタイプを作成したり、パディングを追加したりするのが簡単になります。また、LinearLayout を機能させることができない場合は、RelativeLayout を使用することもできます。繰り返しますが、これらはすべてコードで行うことができますが、XML でレイアウトを行うと柔軟性が向上します (私の考えでは、扱いが簡単です)。

于 2012-10-25T18:21:36.600 に答える