如何在Android中使用按钮事件在GridView中添加行和列?

如何在Android中使用按钮事件在GridView中添加行和列?,android,Android,我已经创建了一个GridView,它有三行三列,每个列中都有文本字段。单击按钮后,用户可能需要创建行或列,以便为“表”创建额外的层。这是如何实现的 我们不能简单地创建包含没有数据的行和列的表 只能使用方法setNumColumns定义要显示的列数: 公共无效setNumColumns(int numColumns) 在API级别1中添加设置网格中的列数 相关XML属性android:numColumns参数 所需的列数。 链接: 这意味着您只能设置列数,但不能设置行数 如果需要GridView3

我已经创建了一个
GridView
,它有三行三列,每个列中都有文本字段。单击按钮后,用户可能需要创建行或列,以便为“表”创建额外的层。这是如何实现的

我们不能简单地创建包含没有数据的行和列的表


只能使用方法
setNumColumns
定义要显示的列数:

公共无效setNumColumns(int numColumns)

在API级别1中添加
设置网格中的列数

相关XML属性
android:numColumns
参数 所需的列数。 链接:

这意味着您只能设置列数,但不能设置行数 如果需要
GridView
3x3,则需要为
GridView
设置9项,并将列数设置为3。
如果需要
GridView
7x2,则需要为
GridView
设置14个项目,并将列数设置为7

我写了一些例子,来帮助你实现你需要的东西


MainActivity.java

package com.dinamicgridview.app;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.GridView;


public class MainActivity extends AppCompatActivity {

    String[] data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

    GridView mGridView;
    ArrayAdapter<String> mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAdapter = new ArrayAdapter<String>(this, R.layout.gridview_item, R.id.tv_text, data);
        mGridView = (GridView) findViewById(R.id.container);
        mGridView.setAdapter(mAdapter);
        adjustGridView(4);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_adjust_1) {
            adjustGridView(1);
            return true;
        }else if(id == R.id.action_adjust_2){
            adjustGridView(2);
            return true;
        }else if(id == R.id.action_adjust_3){
            adjustGridView(3);
            return true;
        }else if(id == R.id.action_adjust_4){
            adjustGridView(4);
            return true;
        }else if(id == R.id.action_adjust_5){
            adjustGridView(5);
            return true;
        }else if(id == R.id.action_adjust_6){
            adjustGridView(6);
            return true;
        }else if(id == R.id.action_adjust_7){
            adjustGridView(7);
            return true;
        }else if(id == R.id.action_adjust_8){
            adjustGridView(8);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    private void adjustGridView(int numColumns) {
        mGridView.setNumColumns(numColumns);
    }
}
活动\u main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context=".MainActivity">
    <item android:id="@+id/action_adjust_1"
          android:title="Adjust 1"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_2"
          android:title="Adjust 2"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_3"
          android:title="Adjust 3"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_4"
          android:title="Adjust 4"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_5"
          android:title="Adjust 5"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_6"
          android:title="Adjust 6"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_7"
          android:title="Adjust 7"
          android:orderInCategory="100"
          app:showAsAction="never"/>
    <item android:id="@+id/action_adjust_8"
          android:title="Adjust 8"
          android:orderInCategory="100"
          app:showAsAction="never"/>
</menu>
<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:columnWidth="70dp"
    android:minHeight="70dp"
    android:id="@+id/container"
    tools:context=".MainActivity" />
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="70dp"
                android:layout_height="70dp">
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:id="@+id/tv_text"
            android:text=""/>
</RelativeLayout>
演示

欢迎使用堆栈溢出!你试图解决这个问题了吗?如果你有,在你的问题中包括你的代码和研究,以显示哪些不适合你。如果没有,你应该先尝试自己解决它,然后在这里发布代码和研究。这也让别人更容易回答你的问题!谢谢。。。这就更有意义了。@CanaanNyoni,我看到你是
stackoverflow.com
上的新手。所以,若我的答案是有帮助的,你们可以接受它,帮助其他人找到相同问题的答案。你应该按我答案左边的绿色方格