“我的片段”实现了View.OnClickListener,但根本无法识别任何点击。
片段代码:
public class StartFragment implements View.OnClickListener {
@BindView(R.id.my_button)
Button mybutton;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_start, container, false);
ButterKnife.bind(this, view);
mybutton.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
Log.d("START", "Click Detected");
switch (v.getId()){
case R.id.mybutton:
}
}
}
我不了解这种行为,为什么它无法识别任何点击?我在这里想念什么吗?
我删除了我在Fragment代码中拥有的其他一些按钮,以及一些对此问题不重要的覆盖方法。
编辑:
即使我尝试将按钮声明为:
Button myButton= view.findViewById(R.id.mybutton);
myButton.setOnClickListener(this);
在onCreateView
内的我仍然无法识别点击。按照建议尝试用ButterKnife尝试@OnClick(R.id.your_btn)
也无济于事。
答案 0 :(得分:1)
使用黄油刀时。尝试黄油刀 @OnClick(R.id.your_btn)。 否则,在没有黄油刀的情况下找到您的视图,然后检查它是否有效。希望这会对您有所帮助。
答案 1 :(得分:0)
我希望这是可行的。
public class StartFragment implements View.OnClickListener {
@BindView(R.id.my_button)
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_start, container, false);
ButterKnife.bind(this, view);
Button myButton= view.findViewById(R.id.mybutton);
myButton.setOnClickListener(this);
return view;
}
}
@Override
public void onClick(View v) {
Log.d("START", "Click Detected");
switch (v.getId()){
case R.id.mybutton:
}
}