1

1つのボタンがクリックされたときに動的にボタンを作成しています。つまり、そのボタンのonClickイベントの下にあります。ただし、1つのボタンが作成されるたびにn個のボタンが動的に作成されます。

LinearLayout ll = (LinearLayout) findViewById(R.id.linearLayout1);
.....

public void onClick(View arg0) {
Button topArtistbutton = new Button(SalesPanel.this, null,android.R.attr.buttonStyleSmall);
topArtistbutton.setText("Top Artist");
topArtistbutton.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));topArtistbutton.setId(3);
ll.addView(topArtistbutton);
}

ボタンを1つだけ動的に作成したい

4

2 に答える 2

5
boolean bCreate = true;
...
public void onClick(View arg0) {
    if (bCreate)
    {
         Button topArtistbutton = new Button(SalesPanel.this, null,android.R.attr.buttonStyleSmall);
         topArtistbutton.setText("Top Artist");
         topArtistbutton.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));topArtistbutton.setId(3);
         ll.addView(topArtistbutton);
         bCreate = false;
    }
}
于 2012-12-19T12:43:17.273 に答える
1

フラグを設定し、ifステートメントを使用して、ボタンがすでに作成されているかどうかを確認します。

boolean created = false;


public void onClick(View arg0) {
if (!created) {

    Button topArtistbutton = new Button(SalesPanel.this, null,android.R.attr.buttonStyleSmall);
    topArtistbutton.setText("Top Artist");
    topArtistbutton.setLayoutParams(new  LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
    topArtistbutton.setId(3);
    ll.addView(topArtistbutton);
    created = true;
    }
}
于 2012-12-19T12:47:39.480 に答える