Java 在运行时添加Gridview中的新项
我的购物清单申请有问题。我从中实现了一个按钮适配器,用于将产品添加到列表中。我的gridview中的每个buuton都是一个产品,每个产品都有上下文菜单,我可以在其中将其添加到列表或删除产品 问题是,用户应该能够添加新产品或类别,而我不知道如何在运行时将项目添加到gridview。我认为我可以在C++中创建一些动态数组列表,但是我对Android和java是新的,所以我不知道如何实现这样的东西。 我试图实现堆栈,但每次尝试推送某些东西时,应用程序都会崩溃。数组列表也是如此 按钮适配器:Java 在运行时添加Gridview中的新项,java,android,gridview,runtime,adapter,Java,Android,Gridview,Runtime,Adapter,我的购物清单申请有问题。我从中实现了一个按钮适配器,用于将产品添加到列表中。我的gridview中的每个buuton都是一个产品,每个产品都有上下文菜单,我可以在其中将其添加到列表或删除产品 问题是,用户应该能够添加新产品或类别,而我不知道如何在运行时将项目添加到gridview。我认为我可以在C++中创建一些动态数组列表,但是我对Android和java是新的,所以我不知道如何实现这样的东西。 我试图实现堆栈,但每次尝试推送某些东西时,应用程序都会崩溃。数组列表也是如此 按钮适配器: Butt
ButtonAdapter(Context c, ArrayList<String> array){
mContext = c;
arrayInAdapter = array; }
public int getCount() {
int a;
a = arrayInAdapter.size();
return a;
}
public View getView(int position, View convertView, ViewGroup parent) {
Button btn;
if (convertView == null) {
//if it's not recycled, initialize some attributes
btn = new Button(mContext);
btn.setLayoutParams(new GridView.LayoutParams(130, 130));
btn.setPadding(8, 8, 8, 8);
}
else {
btn = (Button) convertView;
}
btn.setText(arrayInAdapter.get(position));
btn.setTextColor(Color.RED);
btn.setBackgroundResource(R.drawable.sample_0);
btn.setId(position);
btn.setOnClickListener(new MyOnClickListener(position));
return btn;
}
但当我尝试将新项目发送到阵列时,程序崩溃
arrayInGrid.add("new");
事实上,它在
arrayInAdapter.size();
在按钮适配器
有什么问题吗?您可以将动态数组中的值传递给该GridView的BaseAdapter。 这里有一个教程,希望能对你有所帮助。
是的,但是我应该如何实现这个动态数组来将元素传递给基本适配器?您能给我一些提示吗?您可以通过两种方式实现这一点,选项1:为主活动中的动态值创建一个“公共静态”数组,并从BaseAdapter类访问该数组。选项2:为BaseAdapter构造函数添加数组列表参数,并在调用此适配器类时将数组传递给BaseAdapter。在这里,您可以将构造函数更改为ButtonAdapter(Context c,ArrayList数组){mContext=c;arrayInAdapter=array;}好的,我按照您的建议更改了代码,但仍然存在一些问题。我更新了我的问题。你能在这里发布你的BaseAdapter类和GridAvActivity吗。?
arrayInGrid.add("new");
arrayInAdapter.size();