小编Tra*_*anT的帖子

以编程方式创建Imagebutton

我想以编程方式创建几个ImageButtons.我能够创建它们但是click事件监听器不断接收相同的视图(按钮2),无论我是否单击按钮0,按钮1或按钮2.

    RelativeLayout gameBoard = (RelativeLayout) findViewById(R.id.RelGameboard);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.CENTER_IN_PARENT,1);

    for(int i = 0 ; i <  3 ; i++)
    {

        ImageButton btnGreen = new ImageButton(this);
        btnGreen.setImageResource(R.drawable.bola_verde);
        btnGreen.setLayoutParams(lp);
        btnGreen.setOnClickListener(mGreenBallOnClickListener);
        btnGreen.setBackgroundColor(Color.TRANSPARENT); 
        btnGreen.setTag(i);
        btnGreen.setId(i);

                    gameBoard.addView(btnGreen);


     }'
Run Code Online (Sandbox Code Playgroud)

单击事件侦听器:

private View.OnClickListener mGreenBallOnClickListener = new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        //check which green ball was clicked
        ImageButton imgBtn = (ImageButton) v;

    Log.i("greeny","Clicked on green ball->"+imgBtn.getTag()+" v.ID->"+v.getId());
    }
};
Run Code Online (Sandbox Code Playgroud)

对于任何绘制的图像按钮,当我点击时我得到:点击绿球 - > 2 v.ID-> 2

按钮位于不同的位置(我为每个按钮设置了不同的填充,但为了简化代码,我没有把它放在这里)

android click imagebutton

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

click ×1

imagebutton ×1