1
我的購物列表應用程序出現問題。我從這tutorial實現了一個按鈕適配器,我將用它來添加產品列表。我Gridview中的每個buuton都將是一個產品,每個產品都有上下文菜單,我可以將其添加到列表或刪除產品。在運行時添加的Gridview中的新項目
問題是用戶應該有能力添加新產品或類別,我不知道如何在運行時將項目添加到gridview。我認爲我可以創建一些動態數組像列表中的c + +,但我是新來的android和java,所以我不知道如何實現這樣的東西。
任何幫助將不勝感激:)
我試圖執行堆棧,但每一次我試圖把一些應用程序崩潰的時間。同樣是與陣列列表;/
ButtonAdapter:
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;
}
}
和在網格活動我有另一個數組列表
public static ArrayList<String> arrayInGrid;
中的onCreate
:
gridView.setAdapter(new ButtonAdapter(this,arrayInGrid));
bu當我嘗試發送新項目到陣列程序崩潰時。
arrayInGrid.add("new");
事實上,在按鈕適配器崩潰的
arrayInAdapter.size();
。
任何想法是什麼錯?
是的,但我應該如何實現這個動態數組傳遞元素到Base Adapter?你能給我一些提示嗎? – user1835312
您可以通過以下兩種方式實現此目的: 選項1:爲主活動中的動態值創建一個「公共靜態」數組,並從BaseAdapter類訪問數組。 選項2:爲您的BaseAdapter構造函數添加數組列表參數,並在調用此適配器類時將您的數組傳遞給BaseAdapter。 在這裏,您可以將您的構造函數更改爲: ButtonAdapter(上下文c,ArrayList array)mContext = c; arrayInAdapter = array; } –
好的,我改變了我的代碼,因爲你建議,但我仍然有一些問題。我更新了我的問題。任何想法有什麼不對? – user1835312