Android 如何为gridview添加值
我需要添加数据到gridview表,当按钮是点击。我的代码:Android 如何为gridview添加值,android,Android,我需要添加数据到gridview表,当按钮是点击。我的代码: String[] data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"}; GridView gvMain; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { su
String[] data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"};
GridView gvMain;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.smena);
adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.tvText, data);
gvMain = (GridView) findViewById(R.id.gridView1);
gvMain.setAdapter(adapter);
Button but1=(Button) findViewById(R.id.button1);
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
ButtonOn (1);
}
});
}
public void ButtonOn (int Art){
adapter.add("1");
gvMain.setAdapter(adapter);
}
String[]data={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”};
GridView gvMain;
阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.smena);
适配器=新阵列适配器(this,R.layout.item,R.id.tvText,data);
gvMain=(GridView)findViewById(R.id.gridView1);
gvMain.setAdapter(适配器);
按钮but1=(按钮)findViewById(R.id.button1);
但是1.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
巴顿农(1);
}
});
}
公共艺术(国际艺术){
适配器。添加(“1”);
gvMain.setAdapter(适配器);
}
单击按钮时,我的应用程序意外停止。ArrayAdapter将数组转换为无法修改的抽象列表(List)。在初始化ArrayAdapter时使用ArrayList,而不是使用数组
String[] data = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k" };
ArrayList<String> lst = new ArrayList<String>();
GridView gvMain;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.smena);
lst.addAll(Arrays.asList(data));
adapter = new ArrayAdapter<String>(this, R.layout.title_bar, R.id.editText1,lst);
gvMain = (GridView) findViewById(R.id.gridView1);
gvMain.setAdapter(adapter);
Button but1 = (Button) findViewById(R.id.button1);
but1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
ButtonOn(1);
}
});
}
public void ButtonOn(int Art) {
lst.add("1");
gvMain.setAdapter(adapter);
}
String[]data={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”};
ArrayList lst=新的ArrayList();
GridView gvMain;
阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.smena);
lst.addAll(Arrays.asList(data));
适配器=新阵列适配器(此,R.layout.title_栏,R.id.editText1,lst);
gvMain=(GridView)findViewById(R.id.gridView1);
gvMain.setAdapter(适配器);
按钮but1=(按钮)findViewById(R.id.button1);
但是1.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
巴顿农(1);
}
});
}
公共艺术(国际艺术){
第1条添加(“1”);
gvMain.setAdapter(适配器);
}
试试这段代码
字符串[]项={“a”、“b”、“c”、“d”、“e”、“f”};
按钮b=(按钮)findViewById(R.id.button1);
b、 setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
GridView GridView=(GridView)findViewById(R.id.gridView1);
setAdapter(新的ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,items));
(或)
setAdapter(新的ArrayAdapter(getApplicationContext(),R.layout.cust,R.id.textView1,items));
}
});
LogCat显示的是哪种错误
如果显示“空指针异常”或“无法启动活动”,则应尝试在单个活动中扩大所有项目,或者将数据正确地用于活动,并在新活动中显示GridView
希望你能理解我的想法。更重要的是,不建议将活动用作活动的内容,因为它们会消耗更多的内存。我知道有许多教程遵循相同的方法,但隐藏了缺点。顺便说一句,在
按钮上,您需要调用notifyDataSetChanged
方法,而不是重新设置适配器。
Try This Code
String[] items = {"a","b","c","d","e","f"};
Button b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
GridView gridView = (GridView)findViewById(R.id.gridView1);
gridView.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, items));
(or)
gridView.setAdapter(new ArrayAdapter<String>(getApplicationContext(),R.layout.cust, R.id.textView1, items));
}
});