0

プログラムで可変数のボタンをアクティビティに追加しようとしています。

だから私はこのような入力されたハッシュマップから始めています:

Map<String, String> map = new HashMap<String, String>();

次に、ループしてデータを取得し、ボタンを作成します。

int k = 0;
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layrelative);
for(Entry<String,String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            Button b = new Button(Peli.this);
            b.setId(k);
            b.setText(key);
            b.setOnClickListener(Peli.this);
            layout.addView(b);
            k++;
        }

問題は、ボタンが1つしか表示されないことですが、ループをログに記録すると、データは複数のボタンを生成しても問題ありません。ちなみに、siは常に最後の反復からの最後のデータです。

私は何が間違っているのですか?同じ結果のイテレータでもテストしたので、私の間違いはaddViewメソッドまたはすべてのボタンビューの作成にあると思います。

前もって感謝します。

4

1 に答える 1

2

ボタンの配置場所に関して、ボタンのプロパティを設定する必要はありません。これは RelativeLayout です。デフォルトは左上です。基本的に、多くのボタンを配置していますが、それらはすべて Z 方向に重なり合っています!!!

この How to lay out Views in RelativeLayout programmatic? を見てください。

于 2012-06-18T18:56:00.883 に答える