android中R id的不匹配

时间:2014-01-01 15:43:38

标签: android

我已将布局文件定义为:

  <ImageView        
        android:id="@+id/next_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:clickable="true"            
        android:src="@drawable/next_button_image"/>

我的java文件onClickListener as:

   nextButton=(ImageView) findViewById(R.id.next_button);  
   nextButton.setOnClickListener(this);
    @Override
    public void onClick(View v) {
    System.out.println(v.getId()+"==="+R.id.next_button);
    switch (v.getId()) {
    case R.id.next_button:
        ++pageCount;
        setAnimalWithClick();
        break;
    case R.id.back_button:
        --pageCount;
        setAnimalWithClick();
        break;


    default:
        break;
    }

}

但它没有注册click事件。 我放置的sysout给了我这个输出:

01-01 21:07:13.384: I/System.out(10678): 2131230723===2131230721

为什么ID不同?我尝试过清洁和重建。它没有锻炼。

1 个答案:

答案 0 :(得分:0)

我建议使用此模式,并且您不必拥有巨大的switch语句,并希望您的ID得到正确管理:

    nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Handle click
        }
    });