有关OnClick( View v)中View的传递机制

  • 今天想用内部类写一个监听器,发现对OnClick(View v)中View的传递机制不太了解
  • 下面为我的代码,为什么这样写的话,不会进入switch-case语句呢?(最后一个Log显示Unreachable Statement)
    private class MyOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.input_password:
                    Log.d("Tag","input");
                    break;
                case R.id.forget_password:
                    Log.d("Tag","forget");
                    break;
                default:
                    break;
                Log.d("Tag","here");//Unreachable Statement
            }
        }
    }

1.代码错误,程序不会运行到最后一个Log,最多运行到 default 的 break 就跳出 switch 了
2.不会进入到 switch ?是否有为对应的控件设置监听?

package com.example.administrator.demo.SharedPreferences;

public class testActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shared_preferences);
        TextView tvTest1 = (TextView) findViewById(R.id.tv_test1);
        tvTest1.setOnClickListener(new MyOnClickListener());
    }


    private class MyOnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.tv_test1:
                    Log.e("Tag", "input");
                    break;
                case R.id.tv_test2:
                    Log.e("Tag", "forget");
                    break;
                default:
                    Log.e("Tag", "here");//Unreachable Statement
                    break;
            }
        }
    }
        }