java - android中如何判断点击了哪个动态按钮?

标签 java android

我正在 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 中放置任何按钮。

最佳答案

您可以通过编程方式设置 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;
    }

关于java - android中如何判断点击了哪个动态按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47493164/

相关文章:

java - 如何将依赖项注入(inject) JerseyTest?

java - 为什么WIndows的JRE 8 32位和64位离线安装文件大小相差这么大?

String.toUpperCase() 上的 Java 阻塞线程

java - Android 编程 - 总是重新启动相同的 Intent

android - Android中服务和线程的区别?

android - Android 10 中的 FIleObserver NoSuchMethodError

java - 将具有不同参数或不同参数数量的消费者组合起来

Android Studio - 无法找到请求目标的有效认证路径

java - 错误: incompatible types: <anonymous OnTabSelectedListener> cannot be converted to BaseOnTabSelectedListener

android - SupportMapFragment 在 Android 4.1+ 上因 NullPointerException 而崩溃