簡體   English   中英

ANDROID處理大量帶有數組的按鈕嗎?

[英]ANDROID Handle large amount of buttons with array?

嘿,我正在制作一個具有〜256個按鈕的android應用。 因為我不想為每個人都編寫完全相同的代碼,所以我認為通過數組實現更簡單的解決方案是可能的。 我在onCreate中設置偵聽器的方法是:

1    for (int i=1; i<32; i++)
2               {
3                   button[i] = (Button)findViewById(R.id.button[i]);
4                   button[i].setOnTouchListener(this);
5               }

我這樣設置Button []: Button[] button=new Button [64];

現在,eclipse在第3行告訴我“按鈕無法解析或不是字段”,它只是在單詞“ button”下划線,因此我認為它忽略/只是不識別[i](數組)填充。

我的其余代碼似乎可以完美地進行下去,因為它被識別為對象(如果我說錯了,請糾正我),但是findViewById()不能繼續進行下去。

感謝您的回復,Alex

您無法完成您在解決方案中提出的建議。 更好的方法是在代碼中動態添加按鈕。 例如,

View parentView = (LinearLayout) findViewById(R.id.parentView);
// declare button array above
for (int i=1; i<32; i++)
{
    Button btn = new Button(context);
    // EDIT: adding a background resource
    btn.setBackgroundResource(R.layout.button_layout);
    btn.setText("This is my text");
    btn.setOnTouchListener(this);
    button[i] = btn;
}

用戶“ Horschtele”以完美的方式回答了問題,但他自己刪除了答案(不知道為什么)。

Horschtele,如果您讀過那本書,我只是想說這個解決方案是完美的!

我必須(或至少我認為必須)對每個tableRow進行此操作,但這可以為我節省大量時間。 再次感謝Horschtele(您是德國人嗎?

如果您已經在表格中放置了按鈕,那么我對Horschtele答案的修改版本:

ViewGroup container = (ViewGroup) findViewById(R.id.tableRow1);

            for(int i=0; i<container.getChildCount();i++){
                System.out.println(container.getChildCount());
            Button button = (Button)container.getChildAt(i);
            button.setOnTouchListener(this);
            }

(不要懷疑println,您可以輕松地檢查系統是否正確識別了您所引用的容器)。

如果您使用Button數組來做到這一點,那么方法就是這樣:

button[i] = (Button)container.getChildAt(i);
button[i].setOnTouchListener(this);

暫無
暫無

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

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