Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过编程方式向网格布局添加按钮_Java_Android_Android Layout_Android Studio - Fatal编程技术网

Java 通过编程方式向网格布局添加按钮

Java 通过编程方式向网格布局添加按钮,java,android,android-layout,android-studio,Java,Android,Android Layout,Android Studio,我试图通过编程在Android的GridLayout中添加一个按钮。这是我正在使用的代码: public class GridScrollTest extends AppCompatActivity { private GridLayout gridLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte

我试图通过编程在Android的GridLayout中添加一个按钮。这是我正在使用的代码:

public class GridScrollTest extends AppCompatActivity {

private GridLayout gridLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_grid_scroll_test);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CreateNewItem();

            Snackbar.make(view, "Added a new button", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

private void CreateNewItem(){

    gridLayout = (GridLayout)findViewById(R.id.gridLayout);

    Button newButton = new Button(this);
    newButton.getLayoutParams().width = 100;
    newButton.getLayoutParams().height = 140;
    newButton.setGravity(Gravity.CENTER_VERTICAL | Gravity.FILL_VERTICAL);
    newButton.requestLayout();

    gridLayout.addView(newButton);
}
目前代码什么也不做。它不会崩溃,但也不会添加按钮。“添加了一个新按钮”快捷键会被触发

这就是我们的目标:

一个新按钮将添加到上一个按钮的旁边,之后的按钮将添加到下一行。所有按钮的大小都相同(稍后它们将是图像按钮)


如果有任何帮助,我们将不胜感激。

为什么不尝试使用网格布局的“回收器视图”?您只需将其添加到列表并通知适配器即可。谢谢,这非常有效!为什么不尝试使用网格布局的回收器视图?您只需将其添加到列表并通知适配器即可。谢谢,这非常有效!