繁体   English   中英

添加在RelativeLayout中以编程方式创建的GridView

[英]Add a GridView created programmatically in a RelativeLayout

我试图在XML中创建的RelativeLayout中插入我在Java中创建的GridView。 我收到的错误是“ java.lang.UnsupportedOperationException:AdapterView不支持addView(View)”,并且每次进入addView函数时,它都会使我的应用程序崩溃。 我尝试创建一个由相对的线性布局,仍然是相同的错误。

这是代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main3"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.work.app2.Main3Activity">

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:id="@+id/buttonDel" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/button"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/RL">

</RelativeLayout>

和Java:

RelativeLayout RelView;
private void addButton() {
    RelView = (RelativeLayout) findViewById(R.id.RL);
    GridView GV = new GridView(this);
    GV.setLayoutParams(new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT
           ));

    GV.setColumnWidth(100);
    GV.setNumColumns(GridView.AUTO_FIT);
    GV.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);

    GV.addView(RelView);//<-----Problem here

    GridAdapter adapter = new GridAdapter(Main3Activity.this,IconsL,Icons2L,nstring);

    RelatLayout.setAdapter(adapter);

    RelatLayout.setOnItemClickListener(new AdapterView.OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) {
            showMessage("ss", "click"+position);
        }

    });
    }

您正在将相对布局添加到网格视图。 尝试做相反的RelView.addView(GV)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM