0

相対レイアウトを使用してさまざまなビューを追加しようとしています。edittext とスピナーが追加されますが、リストビューは表示されません。また、レイアウトに xml を使用していません。

public class CustomView extends LinearLayout {
    Context rContext;
    private String rTitle;

    private Spinner rSpinner;
    private EditText rInput;
    private ListView rResultsList;

    public CustomView(Context context) {
        super(context);
        rContext = context;
    }

    public CustomView(Context context, AttributeSet attrs, int theme) {
        super(context, attrs, theme);
    }

    public void initialize(String title) {

        rTitle = title;
        rInput = new EditText(rContext);
        rInput.setId(1);
        rSpinner = new Spinner(rContext);
        rSpinner.setId(2);
        rResultsList = new ListView(rContext);
        rResultsList.setId(3);
        rInput.setText("1");

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(rContext, R.layout.result_item, R.id.result_item, new String[] { "this", "that" });
        rResultsList.setAdapter(adapter);
        addViews();
    }

    @Override
    public String toString() {

        return rTitle;
    }

    private void addViews() {

        RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(ConvertoActivity.APP_WIDTH / 2, 100);
        relativeParams.addRule(RelativeLayout.RIGHT_OF, rInput.getId());

        RelativeLayout.LayoutParams relativeParams2 = new RelativeLayout.LayoutParams(ConvertoActivity.APP_WIDTH / 2, 100);
        relativeParams.addRule(RelativeLayout.LEFT_OF, rSpinner.getId());

        RelativeLayout.LayoutParams relativeParams3 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        relativeParams.addRule(RelativeLayout.BELOW, rInput.getId());

        this.addView(rInput, relativeParams2);
        this.addView(rSpinner, relativeParams);
        this.addView(rResultsList, relativeParams3);


    }
}

ここに画像の説明を入力

4

2 に答える 2

0

気にしないで、私は答えを見つけました。相対パラメーターの同じオブジェクトにルールを追加していました。

于 2013-06-21T23:32:27.997 に答える
0

カスタム ビューは LinearLayout を拡張し、RelativeLayout.Layout パラメータを使用しています。カスタム ビューを変更して RelativeLayout を拡張します。

于 2013-06-21T22:09:42.920 に答える