【问题标题】:How to determine which dynamic button was clicked in android?如何确定在android中单击了哪个动态按钮?
【发布时间】:2017-11-26 13:22:43
【问题描述】:

我正在 oncreate 中创建一个动态按钮,我没有在我的 XML 中放置任何按钮。

LinearLayout table = (LinearLayout)findViewById(R.id.linearlayout);
Button btnAttendance,btnSched;
btnAttendance = new Button(this);
btnSched = new Button(this);
btnAttendance.setOnClickListener(this);
btnSched.setOnClickListener(this);
table.addView(btnAttendance);
        table.addView(btnSched);

// 这是我在实现监听器时创建的 OnClick 方法:

@Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        BackgroundWorker fetchRiddles = new BackgroundWorker(DashActivity.this,"retrieveRiddles");
        switch (arg0.getId()) {
        case 1:  // in this case i usually put "R.id.Button1:" but my problem is that my buttons are dynamic
            fetchRiddles.execute("0,"+username);
            break;
        case 2:
            fetchRiddles.execute("1,"+username);
            break;
    }

如何判断哪个按钮被switch点击了?我的按钮是动态创建的,没有在我的 xml 中放置任何按钮。

【问题讨论】:

    标签: java android


    【解决方案1】:

    您可以通过编程方式设置 ID:

    btnAttendance = new Button(this);
    btnAttendance.setId(100);
    btnSched = new Button(this);
    btnSched.setId(200);
    

    然后比较:

    @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            BackgroundWorker fetchRiddles = new BackgroundWorker(DashActivity.this,"retrieveRiddles");
            switch (arg0.getId()) {
            case 100:  // in this case i usually put "R.id.Button1:" but my problem is that my buttons are dynamic
                fetchRiddles.execute("0,"+username);
                break;
            case 200:
                fetchRiddles.execute("1,"+username);
                break;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多