繁体   English   中英

如何修复我的onclick侦听器,以便在单击标题时不必单击两次以触发事件?

[英]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;
...

因为你设置onClickListeneronLongClickListener一个内部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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM