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

时间:2018-02-20 08:23:31

标签: android listview alphabetic

我正在创建一个字母顺序列表,其中还有一个字母显示在项目上方 - 请参阅图像: screenshot

这已经完成且工作正常,但我需要点击每个项目,但字母除外。

这是我的代码来自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 ..等等,只是下面的项目。

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

2 个答案:

答案 0 :(得分:0)

您需要使用OnItemClick并指定哪个项目可以点击

答案 1 :(得分:0)

我想知道没人能帮忙解决这么简单的事情!我为自己解决了这个问题,在我的适配器中我刚用过:

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

像魅力一样!