android-当点击2按钮时做出反应

时间:2013-05-13 18:23:14

标签: android button

我想构建简单的记忆游戏。我用了16个按钮。 我知道如何在特定按钮被阻止时做出反应,但我如何对每个按钮点击做出反应并检查是否选择了匹配按钮 (现在不是必须的)?

2 个答案:

答案 0 :(得分:0)

在xml中,为onClick

使用Button的相同名称
<Button
   android:id="@+id/btn1"
   ...
   android:onClick="btnClick"/>
<Button
   android:id="@+id/btn2"
   ...
   android:onClick="btnClick"/>

在您的java代码中,确保该函数是公共的,具有您在上面的xml onClick属性中定义的相同名称,并且它只需要View作为参数。 ViewButton点击,因此您可以使用idswitch,使用if/else或者您想要处理<{1}} >

public void btnClick(View v)
{
    switch(v.getId())    // v is the btn that was clicked so this will give you its id
    {
        case (R.id.btn1):   btn1 was clicked
         ... do stuff

要回答您的第一个问题,您可以使用之前建议的标记或计数器,如果计数器==说2,则点击会执行您需要的任何操作。如果没有,则存储Button表示要在第二次单击中比较的值

另一种方式是将它们设置为for loop,我假设你知道如何设置loop所以我会保留这个简短的

for (int i=0; i<buttons.size(); i++)
{
     ...
     button[i].setOnClickListener(ActivityName.this);
}

@Override
public void onClick(View v)
{
    int id = v.getId();
}

确保您实施OnClickListener()

答案 1 :(得分:0)

使用逻辑我能够创建一个程序,但它很长。 对于每个按钮,您应该这样做:

    Button B1;
    int x,y; //give them values and compare (example: B1=1, B2=2, B3=1 .. B1&B3 the same picture)
    int turn = 1; //to know whos turn (x or y), default start on x
    int numberOfClicks=0; //when 2 buttons clicked, check

    //in the OnCreate()
    B1 = (Button) findViewById(R.id.b1); //assume B1's value = 1
    B1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {    //------------------------------------ OnClick Starts here

            if (turn==1){
            //use x
                x=1;
                turn=2; //flip the turn
                numberOfButtons++; //one is clicked so far
            }else{
            //use y
                y=1;
                turn=1;
                numberOfButtons++;
            }


            if(numberOfButtons==2){
            //check
                if(x==y){
                //same
                numberOfButtons=0; //restart counter
                }else{
                //not the same
                numberOfButtons=0; //restart counter
            }

        }//end of OnClick           

    }); //end of button OnClickListener 

如果B2 = 7,那么在OnClick中,x和y应该= 7.每个OnClick都有不同的x和y值。