如何将这些按钮添加到我的主要活动中?

时间:2019-06-07 21:05:29

标签: java android

我做了一些按钮,并将它们存储到ArrayList中。我需要将这些按钮添加到我的主要活动布局中。

我试图创建一个线性布局并使其成为我的主布局,但是按钮不显示。

   public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 // createButtons();setContentView(new CircleView(this));



}

public void createButtons() {


    ArrayList<Button> buttons = new ArrayList<>();

    int n = 0; // the number of buttons circumferencing the semicircle
    for(int i = 0; i < 6; i ++) {
        n = 7;
        Button button = new Button(this);
        double Xval = 500* Math.cos(i * Math.PI / n);
        double Yval = 500* Math.sin(i * Math.PI / n);
        button.setX((float)(Xval));
        button.setY((float)(Yval));

        buttons.add(button);

    }



}
}

我希望按钮显示在我的主要活动布局中。

1 个答案:

答案 0 :(得分:0)

我为您的案例找到了一些解决方案,但找不到正确的解决方案,您必须将其更改为自己的实现。

一种方法是创建一个布局,并通过id在代码中获得该布局,然后插入按钮。这是执行此操作的一种方法:

Button myButton = new Button(this);
myButton.setText("Push Me");

LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);

在事件中插入多个按钮,即使我更喜欢在类上实现OnClickListener

for (int i = 1; i <= 20; i++) {
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);
    Button btn = new Button(this);
    btn.setId(i);
    final int id_ = btn.getId();
    btn.setText("button " + id_);
    btn.setBackgroundColor(Color.rgb(70, 80, 90));
    linear.addView(btn, params);
    btn1 = ((Button) findViewById(id_));
    btn1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Toast.makeText(view.getContext(),
                    "Button clicked index = " + id_, Toast.LENGTH_SHORT)
                    .show();
        }
    });
}

您可以在链接Android Samples

中找到许多Android native示例

Source