Как дочерний элемент списка может иметь данные для каждого элемента - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть два списка просмотра, родительский список просмотра содержит элемент «Эссе», который содержит дочерний список «20 заголовков эссе». Когда заголовок эссе щелкнул по нему, откройте действие, которое имеет текстовое представление для отображения текста. Я не хочу делать 20 действий для 20 эссе каждое. есть ли способ, когда я открываю любой дочерний элемент, он показывает только указанные данные для этого только этого дочернего элемента. вот пример фото

Родительский список и открытый описательный эссе

[https://drive.google.com/file/d/1QksjP7hzpqmVCk_Y1ctwsDMYkijDHQPt/view?usp=sharing][1]

После нажатия на Описательное эссе. IT показывает список детских сочинений

[https://drive.google.com/open?id=1NLbkrKD9c8yZb7rvapCxb-Na_lCVJf3P][2]

Теперь нажмите на дочерний элемент списка Заголовок эссе "Не называй счастливым, пока" ". Показывает полный ответ

[https://docs.google.com/uc?export=download&id=1542uOZFzLx8vU7EMlsEhRaWZaguVTKHV ] [3]

Я искал везде, я не знаю точно, что делать. Извините, но я новичок в Android Dev. Я только что создал пользовательский адаптер и список массивов

 public class Writing extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.formenuitem);


            ArrayList<MenuItems> essay = new ArrayList<>();



            ArrayList<MenuItems> items = new ArrayList<>();

            ArrayList<MenuItems> task2Item = new ArrayList<>();

            //================= main items
            items.add(new MenuItems("Descriptive Essay", "list of descriptive essay and solutions"));

            items.add(new MenuItems("Essay 1", "More Essay list"));

            items.add(new MenuItems("Type of Essay ", "How to start Essay Task 1, body-paragraph "));


            items.add(new MenuItems("Task 2", "Solved essay "));


   //show this list in when clicked on Descriotive essay item================================================================


            task2Item.add(new MenuItems("Call No Man Happy Till","This essay about crime"));
            task2Item.add(new MenuItems("Education","This essay about Education"));
            task2Item.add(new MenuItems("University","This essay about University"));
            task2Item.add(new MenuItems("Food","This essay about Food"));
            task2Item.add(new MenuItems("Games","This essay about crime"));
            task2Item.add(new MenuItems("Experience","This essay about crime"));
            task2Item.add(new MenuItems("This is another essay","This essay about crime"));
            task2Item.add(new MenuItems("This is another essay","This essay about crime"));




    //======================set up for main item list
         final    ListAdapter adapter = new ListAdapter(this, items, R.color.category_numbers);


         //setting adapter to have task 2 list
            final ListAdapter task2list = new ListAdapter(Writing.this ,task2Item,R.color.category_numbers);

            //creating variable to find list view for both
          final  ListView listView = findViewById(R.id.list);

          final ListView task2 = (ListView) findViewById(R.id.list);

            listView.setAdapter(adapter);

            // set up to click on the writing

            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                        if(position==0){
                            // make clickable at position 0

                            task2.setAdapter(task2list);

                            task2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                @Override
                                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                    if (position==0){

                                        Intent open = new Intent(Writing.this,ContentDisplay.class);

                                        startActivity(open);


                                    }
                                }
                            });

                    }


                }
            });

        }
    }

I just when I open essay item it leads to me to an essay title list and when I click on essay title it shows me whole answer


  [1]: https://i.stack.imgur.com/HpgLL.jpg
  [2]: https://i.stack.imgur.com/wc4wx.jpg
  [3]: https://i.stack.imgur.com/yLqeg.jpg

1 Ответ

0 голосов
/ 09 апреля 2019

Вам нужен специальный адаптер. реализовать прослушиватель onClick внутри представлений адаптера. а для позиции пометьте представление адаптера и получите его в слушателе. Я надеюсь, что вы знакомы с созданием пользовательских адаптеров. Если вам нужна дополнительная помощь, я надеюсь помочь.

...