2

私はアンドロイドプログラミングが初めてで、問題に遭遇しました。ここにコードスニペットがあります

nums = (GridView) findViewById(R.id.nums);
for(int i=0; i < 10; i++) {
    Button b = new Button(this);
    b.setText(i+"");
    b.setTextSize(15);
    b.setTextColor(Color.CYAN);
    b.setOnClickListener(numsClickHandler);
    nums.addView(b, 20, 20);
}

に到達すると問題が発生します。nums.addView(b, 20, 20);

caused by: java.lang.unsupportedoperationexception: addView(View, int, layoutparams) is    
not supported in adapterview
4

3 に答える 3

8

エラーメッセージは明確で、GridViewビューを直接追加できない AdapterView であり、アダプターを提供する必要がある ListView のように機能し、アダプターでビューを提供します。GridViewチュートリアルが役立つ場合があります。

于 2012-08-28T01:18:29.953 に答える
0

これを試して....

nums = (GridView) findViewById(R.id.nums);
for(int i=0; i < 10; i++) {
    Button b = new Button(this);
   -->** b.setLayoutParams(new GridView.LayoutParams(100, 100));**
    b.setText(i+"");
    b.setTextSize(15);
    b.setTextColor(Color.CYAN);
    b.setOnClickListener(numsClickHandler);
    nums.addView(b);
}
于 2012-08-28T05:22:45.007 に答える
0

まず、以下を使用してレイアウト呼び出し grid_item.xml を作成しましょう。

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="numberClick"
    android:textColor="@color/cyan"
    android:textSize="15sp" />

(および必要なその他の属性)

次に、このレイアウト Adapter.add() を使用してグリッドに新しいアイテムを追加します。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.grid_item, new ArrayList<String>());
for(int i = 0; i < 10; i++)
    adapter.add(String.valueOf(i));
grid.setAdapter(adapter);

もちろん、numberClickXMLonClick属性から呼び出されるメソッドも必要です。

public void onClick(View v) {
    // add your numClickHandler code here
}
于 2012-08-28T01:36:22.000 に答える