我对 android 很陌生,我目前正在阅读大量文档以了解如何开始。我在问这里之前尝试过搜索,但我找不到相关信息。
我的问题是在同一个活动中有 2 个列表视图。
带有类别列表的Listview A。
带有详细数据的Listview B(启动时显示的值基于 listviewA 的类别 1)
当单击 listviewA 的一项时,listViewB 的数据会更改以反映新的选择并显示新的详细信息数据列表。
有人可以给我正确的方向或指向涵盖该主题的教程的链接吗?抱歉,我目前无法发布任何代码。
我对 android 很陌生,我目前正在阅读大量文档以了解如何开始。我在问这里之前尝试过搜索,但我找不到相关信息。
我的问题是在同一个活动中有 2 个列表视图。
带有类别列表的Listview A。
带有详细数据的Listview B(启动时显示的值基于 listviewA 的类别 1)
当单击 listviewA 的一项时,listViewB 的数据会更改以反映新的选择并显示新的详细信息数据列表。
有人可以给我正确的方向或指向涵盖该主题的教程的链接吗?抱歉,我目前无法发布任何代码。
我不确定您尝试制作的布局类型是否对用户友好。如果您使用ExpandableListView进行更改,它将为用户提供更丰富的 UI 体验。您可以在此处查看教程。使用它会给您机会通过交互吸引用户。
无论如何,如果您确定要使用 ListView 则只需创建一个根目录并LinearLayout
在ListView
其中使用两个细节。根据您的要求提供两个布局(和)的高度。ListView
TextView
ListView
TextView
看看这个教程
2 列表视图:
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:visibility="visible">
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
<ListView
android:id="@+id/listView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:visibility="visible">
</ListView>
</LinearLayout>
</LinearLayout>
1 个列表视图 1 个文本视图:
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:visibility="visible">
</ListView>
</LinearLayout>
<TextView android:id="@+id/TextView1" android:text="details"/>
</LinearLayout>
更新:
请多解释一下你的问题。因为在你的场景中,列表视图之间的数据是相互连接的。比如说,如果ListView A是关于产品的,那么ListView B是关于 ProductDetails 的。所以你需要声明一个类变量说ProductID
哪个是两个数据之间的公共实体,并在ListView AsetOnClickListener
的 getView() 中设置此变量,然后获取有关此的数据,并使用此查询的结果设置ListView B的适配器(可能是 SQL db 或RESTful 服务器)。如果您需要了解更多关于设置适配器的详细信息,请使用您尝试过的内容开始一个关于它的新问题。
希望我有所帮助。如果这解决了您的问题,请将其标记为答案。
我以前使用过这种策略,对我来说效果很好。使用线性布局来定位两个列表视图,填充“类别”列表视图并为其设置列表适配器。在这个列表视图上,我设置了一个 OnItemSelectedListener,它在激活时会在第二个“详细信息”视图上设置列表适配器。
根据您的确切需要,您可以替换详细列表视图的适配器,或者只是更改适配器查看的内容并告诉它刷新。
尝试这个:
通过 id (list_A) 获取 listview 后设置单击侦听器
list_A.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//here you can get click position from parameter position
// and do somthing in Adapter_B and then call notifyDataSetChanged() for Adapter_B
Adapter_B.notifyDataSetChanged();
}
});