如何在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
上的新手。所以,若我的答案是有帮助的,你们可以接受它,帮助其他人找到相同问题的答案。你应该按我答案左边的绿色方格