2

買い物リスト アプリケーションに問題があります。リストに製品を追加するために使用するこのチュートリアルのボタン アダプターを実装しました。私のグリッドビューの各ブウトンは製品になり、各製品にはコンテキストメニューがあり、製品をリストに追加または削除できます。

問題は、ユーザーが新しい製品またはカテゴリを追加できる必要があり、実行時にアイテムをグリッドビューに追加する方法がわからないことです。C ++でリストのような動的配列を作成できると思っていましたが、AndroidとJavaが初めてなので、そのようなものを実装する方法がわかりません。

スタックを実装しようとしましたが、何かをプッシュしようとするたびにアプリがクラッシュします。配列リストも同様です。

ボタンアダプタ:

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;  
}  

}

そしてGrid Activityには別のarraylistがあります

public static ArrayList<String> arrayInGrid;

onCreateで:

gridView.setAdapter(new ButtonAdapter(this,arrayInGrid ));  

しかし、新しいアイテムを配列プログラムに送信しようとするとクラッシュします。

arrayInGrid.add("new");

実際、それはでクラッシュします

arrayInAdapter.size();  

ボタンアダプターに。

何が間違っているのですか?

4

1 に答える 1

3

動的配列の値をそのGridViewのBaseAdapterに渡すことができます。これがチュートリアルです。お役に立てば幸いです。 http://www.mkyong.com/android/android-gridview-example/

于 2012-11-19T09:46:57.953 に答える