簡體   English   中英

Android Button ArrayList onClickListener不起作用。 為什么?

[英]Android Button ArrayList onClickListener doesn't work. Why?

我為按鈕和表行創建了一個arraylist。

private ArrayList<Button> btDec = new ArrayList<Button>();
private ArrayList<TableRow> tr = new ArrayList<TableRow>();

然后,我想創建一個新的按鈕和tablerow,並通過在onCreate()方法中使用以下代碼將tem添加到tablelayout中。

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            btDec.add(new Button(this));
            tr.add(new TableRow(this));

            int i = tr.size() - 1;
            btDec.get(i).setId(i);
            btDec.get(i).setText("-");
            tr.get(i).addView(btDec.get(i));
            lo.addView(tr.get(i), new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
        }
    });

所有這些代碼都可以正常工作。 但是以下代碼(同樣在onCreate()方法中)不起作用。 如果按此按鈕,則什么也不會發生,並且在Logcat中不會打印任何內容。

    for(int i = 0; i < tr.size(); i++)
    {
        btDec.get(i).setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View view)
            {
                Log.i("ButtonListener", "test");
            }
        });
    }

請幫我。

問題是此代碼

for(int i = 0; i < tr.size(); i++)
    {
        btDec.get(i).setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View view)
            {
                Log.i("ButtonListener", "test");
            }
        });
    }

您無法在onCreate()執行此操作,因為tr列表為空! 創建按鈕時,應添加onClick偵聽器。

暫無
暫無

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

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