如何识别按钮

时间:2012-08-15 21:48:00

标签: android

我在android中开发了一个图片拼图,我有9个按钮,每个按钮都有自己的图像,除了一个是白色的,现在我想要的是当我点击任何按钮时,白色按钮或以下或者在白色白色按钮上方,按钮交换的属性,我的意思是白色按钮变为点击按钮,点击的按钮变为白色按钮和它们的ID。我这样做但似乎不合逻辑,也没有用。

private OnClickListener btnClick = new OnClickListener() {

    public void onClick(View Sender) {

        ImageButton Incoming=(ImageButton) Sender;
        try{    

                ImageButton temp=MyButtons[Incoming.getId()];
                MyButtons[Incoming.getId()].setImageDrawable(MyButtons[Incoming.getId()-1].getDrawable());
                MyButtons[Incoming.getId()].setId(MyButtons[Incoming.getId()-1].getId());
                MyButtons[Incoming.getId()-1].setImageDrawable(temp.getDrawable());
                MyButtons[Incoming.getId()-1].setId(temp.getId());



        }
        catch (Exception e) {
            // TODO: handle exception
            Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
        }

    }
};

1 个答案:

答案 0 :(得分:0)

您拥有的代码与此类似:

Button temp = MyButtons[1];
MyButtons[1].id = MyButtons[0].id;
MyButtons[0].id = temp.id; // FAIL - same as MyButtons[0].id = MyButtons[1].id

您假设第一行只是按住对现有按钮的引用而对该按钮进行复制。然后设置按钮的ID:

MyButtons[Incoming.get()].setId(MyButtons[Incoming.getId()-1].getId());

然后尝试设置其他按钮的ID:

MyButtons[Incoming.get()-1].setId(temp.getId()));

与:

完全相同
MyButtons[Incoming.get()-1].setId(MyButtons[Incoming.getId()].getId());

您需要保存ID和图像,而不是按钮参考。