如何子列表视图项目可以有每个项目的数据
Posted
技术标签:
【中文标题】如何子列表视图项目可以有每个项目的数据【英文标题】:How to child listview item can have data for each item 【发布时间】:2019-08-31 01:28:11 【问题描述】:我有两个列表视图,父列表视图具有项目 Essay,其中包含“20 论文标题”的子列表视图。当 Essay 的标题单击它时,它会打开一个具有文本视图以显示文本的活动。我不想为每篇 20 篇文章做 20 次活动。当我打开任何子项目时,有什么办法,它只显示该子项目的指定数据。 这是一个图片的例子
家长名单和已打开的描述性文章
[https://drive.google.com/file/d/1QksjP7hzpqmVCk_Y1ctwsDMYkijDHQPt/view?usp=sharing][1]
点击Descriptive Essay后。 IT 显示 Child EssayTitle 列表
[https://drive.google.com/open?id=1NLbkrKD9c8yZb7rvapCxb-Na_lCVJf3P][2]
现在点击子列表项文章标题“Call No Man Happy Till”。它显示完整答案
[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】:您需要一个自定义适配器。在适配器视图中实现 onClick 侦听器。对于位置,标记适配器视图并在侦听器中获取其标记。我希望您熟悉创建自定义适配器。 如果您需要更多帮助,我希望能提供帮助。
【讨论】:
谢谢你的回答。我已经尝试过,但我很困惑。我应该将数据存储在哪里,以便我可以在自定义适配器中引用它的 id。因此,当我单击每个子列表项时,它会针对每个项打开不同的文章。例子。单击描述性文章。点击描述性文章后。它显示 Child EssayTitles 列表,然后我看到完整的文章 如果显示不同的项目,使用位置标记adaper中的视图,记得将其转换为字符串。然后稍后,使用 v.getTag() 从 onclick 侦听器中获取此标签,并使用它来引用您需要的项目。 我刚刚知道你在说什么。早些时候我这样做是为了让自定义适配器在列表项中包含图像。如果我被卡住了,我会把完整的代码发给你兄弟以上是关于如何子列表视图项目可以有每个项目的数据的主要内容,如果未能解决你的问题,请参考以下文章