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 gridrelated 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:

Comments
Post a Comment