【问题标题】:How to dynamically create buttons and track which is pressed?如何动态创建按下的按钮和轨迹?
【发布时间】:2013-12-21 08:14:30
【问题描述】:

所以我正在尝试动态创建按钮。但我不知道它们将如何定位,以及将“添加侦听器”放在哪里。我在这里查看了有关动态创建按钮的问题,但没有一个向我展示如何知道按下了哪个按钮。我从以前的问题中提取了概念并将它们集成到我的代码中。另外,有人可以告诉我如何在循环中创建按钮时将其更改为不同的图像吗?

Button btnArray[] = new Button[numMonstOwn];
    //ERROR HERE: the "layout" in "R.id.layout"
    LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
    for(int i = 0; i < 5; i++){
        btnArray[i] = new Button(this); //initializing buttons

        //ERROR HERE about: "LayoutParams"
        btnArray[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT))
        btnArray[i].setText("button" + i);
        btnArray[i].setOnClickListener(this);
        System.out.println("yo");
        layout.addView(btnArray[i]);
    }

【问题讨论】:

    标签: java button dynamic


    【解决方案1】:

    不要在按钮中设置onClickListener(this) onClickListener(new MyListenerObject());

    MyListenerObject 是使用设置创建的,或者您需要知道它用于什么按钮以及需要执行什么操作的任何其他内容。

    【讨论】:

    • 谢谢!这真的很有帮助。我最终创建了一个名为“MyListenerObject”的类,并在按下按钮时将操作放在那里
    • 没问题,满意就采纳。您应该阅读“匿名内部类”,它们对于按钮侦听器之类的东西非常有用。
    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多