簡體   English   中英

如何確定在Android中單擊了哪個動態按鈕?

[英]How to determine which dynamic button was clicked in 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;
    }

如何確定使用開關單擊了哪個按鈕? 我的按鈕是動態創建的,無需在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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM