[英]How do I fix my onclick listener such that I don't have to click twice to fire an event upon header click?
我在我的代码中尝试onclick和onlongclick监听器。 单击标题后,它应该触发A类并在长按单元格classB时触发。 现在问题是,两者都相应地触发,但是对于第一次点击它没有做任何事情,但是第二次点击它可以正常工作。 我究竟做错了什么? 这是我的代码:
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
....
frontpageHeader = view.findViewById(R.id.frontpage_header);
((TextView) frontpageHeader.findViewById(R.id.header_title)).setText(getActivity().getString(R.string.header_front_page));
frontpageHeader.setOnClickListener(this);
...
}
@Override
public void onClick(final View view) {
switch (view.getId()) {
case R.id.frontpage_header:
frontpageHeader.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View vi) {
((MainActivity) getActivity()).onNewsClicked(view);
}
});
frontpageHeader.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ManageNewsCategoriesActivity.newInstance(getActivity());
return true;
}
});
break;
...
因为你设置onClickListener
和onLongClickListener
一个内部onClick
,你为什么不将它们设置在onCreateView
,基本上是这样的:
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
frontpageHeader = view.findViewById(R.id.frontpage_header);
frontpageHeader.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View vi) {
((MainActivity) getActivity()).onNewsClicked(view);
}
});
frontpageHeader.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ManageNewsCategoriesActivity.newInstance(getActivity());
return true;
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.