根据按钮的id动态参考for循环内创建的按钮

时间:2014-01-31 11:57:24

标签: java android button android-tablelayout

在代码中,我创建了一个表格布局,在其中我根据我给它们ID和标签的级别动态创建了按钮。 我想根据 id 标记在按钮上添加背景图片。 我基本上想要访问 Buttoncreate 功能之外的按钮。 从随机数类中,它将返回一个随机数,将该随机数作为按钮ID,我想在该按钮上显示背景图像,随机数为按钮ID。

public void Tablemake()
{

    table = new TableLayout(this);

    table.setBackgroundResource(image_Level[current_Level]);

    table.setId(6);

    TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);

    table.setLayoutParams(tableParams);

    Buttoncreate();

    relative.addView(table,width1,width1);

    //table.setVisibility(View.INVISIBLE);//for hiding the view

}   


public void Buttoncreate()
{

    for(int i = 0; i < level_Tiles[current_Level]; i++)
    {
        row = new TableRow(this);

        for(int j = 0; j<level_Tiles[current_Level]; j++)
        {

            btn = new Button(this); 

            btn.setWidth(btsize);

            btn.setHeight(btsize);

            btn.setId(k);

            //btn.setBackgroundResource(image_Names[0]);

            row.addView(btn, btsize, btsize); //Attach View to its parent (row)

            //setBackgroundImage();

            TableRow.LayoutParams params = (TableRow.LayoutParams)btn.getLayoutParams();

            btn.setMinimumWidth(0);

            btn.setMinimumHeight(0);

            btn.setLayoutParams(params);

            k++;

            btn.setTag(tag++);

        }

        table.addView(row, new TableLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    }

}


public int Random(int max, int min)
{

    int randm = -1;//max is exclusive

    Random random = new Random();

    while(randm == -1)
    {
        randm = random.nextInt(max-min)+min;

        if(total_Items[randm-1] == -1 && total_Items[randm-2] == -1 && total_Items[randm]==-1)

        {

            return randm;

        }
        else randm = -1;

    }
    return 1;

}

如果有人帮我解决问题,那将是一个很大的帮助。 我在java中有我的整个代码。 如果对此问题有任何疑问,请告诉我。

0 个答案:

没有答案