公司新来一个android实习生,小哥哥,于是开始熟悉怎么使用公司的MVP框架,今天中午问我一个问题:
怎么我给一个button设置点击事件不好使???具体代码如下:
@EActivity(R.layout.activity_main)
public class MainActivity extends BaseAppCompatActivity {
private EditText editText;
private Button firstButton;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.edit_text);
firstButton = findViewById(R.id.button);
firstButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = editText.getText().toString();
Toast.makeText(v.getContext(), "s", Toast.LENGTH_SHORT).show();
}
});
}
我过去看了一会,没发现有啥问题啊???就是简单的设置了点击事件,然后弹出一个toast。
搞得我老脸一红,这么简单的我都不会啦?
于是我把@EActivity这个去掉之后好使了,或者不在onCreate里面手动findview,而是使用@viewById和@Click这两个标签来做也是好使的,都能弹出toast。。。于是我让小哥哥使用标签吧,我也不知道具体为啥这样。
实习小哥哥:刚来问个问题都不知道???
我:这个我是真的不知道~
这这这。。。。。以后还怎么混啊? 不行,我应该是最帅的那个
于是我晚上自己建了个工程试试了,发现原因如下:
@Override
public void onCreate(Bundle savedInstanceState) {
OnViewChangedNotifier previousNotifier = OnViewChangedNotifier.replaceNotifier(onViewChangedNotifier_);
init_(savedInstanceState);
super.onCreate(savedInstanceState);
OnViewChangedNotifier.replaceNotifier(previousNotifier);
setContentView(R.layout.activity_main);
}