view.getId()不等于R.id.myBtn

时间:2016-04-20 07:47:39

标签: java android android-studio

我想确定按下哪个按钮并执行某些操作, 但找不到R.id.myBtn's id。 我怎么办?

活动代码

private int id

public void myCode(View view) {
    id = view.getId();

    switch (id) {
        case R.id.myBtn1:
            testTest();
            break;
        case R.id.myBtn2:
            testTest();
            break;
    }
}

private void testTest() {
    if(id == R.id.myBtn1){  <== it's not equals
        //something
    }else if(id == R.id.myBtn2){ <== it's not equals
        //something
    }
    //something same for two button
}

2 个答案:

答案 0 :(得分:4)

你应该这样做

  1. 在您的活动中实施foreach ($attractieIDs as $id) { foreach ($slots[$id] as $s) { $myOrders[] = $s; } }

    View.OnClickListener
  2. 将按钮的回调注册到public class Activity implements View.OnClickListener { }

    OnClickListener
  3. 在您的Button button1 = (Button) findViewById(R.id.button1); Button button2 = (Button) findViewById(R.id.button1); Button button3 = (Button) findViewById(R.id.button1); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); 方法中应该看起来像这样

    OnClick

答案 1 :(得分:0)

您正在使用相同的参数执行相同的方法(在您的情况下没有):

private int id

public void myCode(View view) {
    id = view.getId();

    switch (id) {
        case R.id.myBtn1:
            testTest();//<---- executes testTest()
            break;
        case R.id.myBtn2:
            testTest();//<---- executes testTest()
            break;
    }
}

private void testTest() {
    if(id == R.id.myBtn1){  <== it's not equals
        //something
    }else if(id == R.id.myBtn2){ <== it's not equals
        //something
    }
    //something same for two button
}

删除testTest()方法并执行switch内的按钮逻辑,或将id作为参数传递给testTest(int vid),与其他评论一样。

public void myCode(View view) {
    testTest(view.getId());
}

private void testTest(int viewId) {
    switch (viewId) {
        case R.id.myBtn1:
            //Action for R.id.myBtn1
            break;
        case R.id.myBtn2:
            //Action for R.id.myBtn2
            break;
    }
}