How to add rows and columns in GridView using a button event in Android? -


i have created gridview 3 rows , 3 columns, each text fields in them. upon clicking button, user may require either rows or columns created can create tier "table". how implemented?

one not create table rows , columns without data.


can use method setnumcolumns defines how many columns show:

public void setnumcolumns (int numcolumns)

added in api level 1
set number of columns in grid

related xml attributes
android:numcolumns
parameters
numcolumns - desired number of columns.

link: http://developer.android.com/reference/android/widget/gridview.html#setnumcolumns(int)

this means, can set columns number not rows number.
if need gridview 3x3, need 9 items gridview , set number of colums 3.
if need gridview 7x2 need 14 items gridview , set number of colums 7.

i have wrote example, implement need.


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 menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify 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);     } } 

menu_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> 

activity_main.xml:

<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" /> 

gridview_item.xml:

<?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> 

demo:
enter image description here


Comments