java - AddView错误,只显示第一个元素

标签 java android view addition

假设我有一个 LinearLayout,我想向其中添加两个 View。第一个包含 editText,另一个包含 listview。我一直在java中尝试代码如下:

    EditText inputViaText;
    ListView historyInput;
    protected static LinearLayout askTextLayout = null;

    askTextLayout = new LinearLayout(this);
    askTextLayout.setVisibility(LinearLayout.VISIBLE);
    askTextLayout.setOrientation(LinearLayout.HORIZONTAL);

    inputViaText =  new EditText(this);
    LinearLayout.LayoutParams askTextParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

    historyInput = new ListView(this);
    LinearLayout.LayoutParams historyInputParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,70);

    askTextLayout.addView(historyInput,historyInputParams);
    askTextLayout.addView(inputViaText,askTextParams);

    FrameLayout.LayoutParams frameAskTextParams = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM);
    setContentView(R.layout.activity_main);
    addContentView(askTextLayout, frameAskTextParams);  

但是,它只显示我添加的第一个。所以当我编写如下代码时:

     askTextLayout.addView(historyInput,historyInputParams);
     askTextLayout.addView(inputViaText,askTextParams);

它只显示listView。当我编写如下代码时:

     askTextLayout.addView(inputViaText,askTextParams);
     askTextLayout.addView(historyInput,historyInputParams);

它只显示编辑文本。有人可以帮助我吗?

最佳答案

在您的 Activity 的 oncreate 方法中尝试此代码

context = this;

        setContentView(R.layout.activity_main);
        container = (LinearLayout) findViewById(R.id.Linear);
        LinearLayout linearLayout = new LinearLayout(context);
        linearLayout.setWeightSum(100);
        ListView v1 = new ListView(context);
        v1.setBackgroundColor(Color.CYAN);
        LinearLayout.LayoutParams p1 = new LinearLayout.LayoutParams(0,
                50);
        p1.weight = 90;
        v1.setLayoutParams(p1);
        EditText v2 = new EditText(context);
        v2.setText("Hello");
        v2.setBackgroundColor(Color.WHITE);
        LinearLayout.LayoutParams p2 = new LinearLayout.LayoutParams(0,
                50);
        p2.weight = 10;
        v2.setLayoutParams(p2);
        linearLayout.addView(v1, p1);
        linearLayout.addView(v2, p2);
        View view = new View(MainActivity.this);

        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,
                1);
        view.setLayoutParams(lp);
        view.setBackgroundColor(Color.BLACK);
        container.addView(linearLayout);
        container.addView(view);


Write this in activity_main:

<LinearLayout
        android:id="@+id/Linear"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </LinearLayout>

关于java - AddView错误,只显示第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954701/

相关文章:

swift - 从另一个 View Controller 调用 View Controller 中的函数

javascript - 后期操作不起作用,需要帮助将信息从 View 传递到 Controller

Android UsbManager.openDevice(Device device) 抛出异常 "device does not exist or be restricted"

android - 哪个android文件夹到夜间模式的资源,v21 +?可绘制之夜-v21?

java - LinkedIn-j 获取公司更新

java - 无法单击从工厂方法传递的元素

android - 指定 android Assets 子文件夹的路径

sql - View 有什么用?

java - 尝试关闭控制台时输入不匹配错误

Java FloatBuffer 大小错误 OpenGL