带字母的字母列表 - 可点击

Posted

技术标签:

【中文标题】带字母的字母列表 - 可点击【英文标题】:Alphabetic list with letter - clickable 【发布时间】:2018-02-20 08:23:30 【问题描述】:

我正在创建一个按字母顺序排列的列表,其中还有一个字母显示在项目上方 - 参见图片:

这已经完成并且工作正常,但我需要让每个项目都可以点击,除了字母。

这是我的 MainActivity.java 代码的一部分(片段):

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 

        View rootView = inflater.inflate(R.layout.activity_bohovia, container, false);

        List<LetterSectionListItem> books = createBooks();

        ListView bookListView = (ListView) rootView.findViewById(R.id.booklistview);

                LetterSectionListAdapter bookListAdapter = new LetterSectionListAdapter(getContext(), R.layout.booklist_row, books) 
            @NonNull
            @Override
            public View getView(int position, View v, ViewGroup parent) 
                //Must call this before to wrap the header around the view
                v = super.getView(position, v, parent);

                TextView bookTitle = (TextView) v.findViewById(R.id.book_title);
                TextView authorName = (TextView) v.findViewById(R.id.author_name);

                Book book = (Book) this.getItem(position);

                assert book != null;
                bookTitle.setText(book.getBookName());
                authorName.setText(book.getAuthorLastName() + ", " + book.getAuthorFirstName());

                return v;
            
        ;

        bookListView.setAdapter(bookListAdapter);

        return rootView;
    

现在我尝试了:

我把这段代码放在那里,就在return rootView;上方:

v.setOnClickListener(new View.OnClickListener() 
                    @Override
                    public void onClick(View v) 

                        Intent intent=new Intent(v.getContext(),SingleitemView.class);
                        intent.putExtra("place2", "test");
                        getContext().startActivity(intent);

                    
                );

但是,这工作正常,因此在单击项目后打开另一个活动,而且当我单击独立字母时,我不希望有可单击的字母 A、B、C.. 等,只是下面的项目。

有人可以在这里建议,我做错了什么吗?

【问题讨论】:

【参考方案1】:

您需要使用 OnItemClick 并指定可点击的项目

【讨论】:

不,先生,我宁愿使用 view = inflator.inflate(R.layout.items_menu_header, null); view.setOnClickListener(null);所以这会禁用我想要的行上的点击,但是我想我需要再次启用点击【参考方案2】:

我想知道没有人能帮忙做这么简单的事情!我自己解决了,在我的适配器中我只是使用了这个:

   TextView headerLetterTextView = (TextView) headerLayout.findViewById(R.id.item_row_letter);
headerLetterTextView.setOnClickListener(null);

像魅力一样工作!

【讨论】:

以上是关于带字母的字母列表 - 可点击的主要内容,如果未能解决你的问题,请参考以下文章

请问向量的符号用LATEX怎么打呢?就是字母上面带个箭头的

苹果手机有一个蓝色的带a字母的怎么弄呢

vue07----axiosjsonp插件使用优化数据优化过滤数据点击右侧边栏进行跳转点击侧边栏字母高亮侧边栏控制列表滚动滚动列表侧边栏高亮嵌套路由列表至详情

仿微信通讯录字母排序列表

如何在文本中打出拼音字母?

小程序城市列表根据字母排序