gpt4 book ai didi

android - 如何使用 ListView 选择来确定 Android 中另一个 ListView 中的列表?

转载 作者:行者123 更新时间:2023-11-30 03:17:44 26 4
gpt4 key购买 nike

我正在尝试使用一个 ListView 中的选择来确定另一个 ListView 中显示的列表的四个维度。例如第一个列表是:

A, B, C

然后通过选择列表 A 你会得到

1, 2, 3

B 会回来。

4, 5, 6

如果选择了 1 那么

I, II, III.

选择 5 将返回另一个列表,依此类推。这将继续到最终将由用户选择的第四个也是最后一个列表。

首先,最终的 ListView 将包含大约 380 个不同的列表。如果选择 A 然后 2 然后 XII 然后显示正确的列表。据推测,我可以根据选择将列表命名为 A2XII,然后用该名称调用列表。

目前,我的理论是设置第一个 ListView,然后在 Listener 中将其设置为不可见,然后将下一个设置为可见。然后使用之前的选择来确定适配器使用的列表。

所以我的问题是:如何从一个列表中进行选择并让它按名称确定下一个列表?

        package org.wmu.LMWTA;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;

import org.wmu.LMWTA.R;

public class Frag_Form extends Fragment {

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View V = (LinearLayout)inflater.inflate(R.layout.form_layout, container, false);
if (container == null) {
return null;
}

final ListView cityList = (ListView) V.findViewById(R.id.list_city);
final ListView cat = (ListView) V.findViewById(R.id.cat);
ArrayAdapter<CharSequence> cityAdapt = ArrayAdapter.createFromResource(getActivity(),
R.array.cities, android.R.layout.simple_spinner_dropdown_item);
ArrayAdapter<CharSequence> catAdapt = ArrayAdapter.createFromResource(getActivity(),
R.array.cat, android.R.layout.simple_spinner_dropdown_item);
//ArrayAdapter<CharSequence> catAdapt = ArrayAdapter.createFromResource(getActivity(),
// R.array.subCat, android.R.layout.simple_spinner_dropdown_item);

cat.setAdapter(catAdapt);
cat.setVisibility(View.GONE);
cityList.setAdapter(cityAdapt);
cityList.setOnItemClickListener( new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show toast
Toast.makeText(parent.getContext(),
(CharSequence) cityList.getItemAtPosition(position).toString().replaceAll("\\s+", ""), Toast.LENGTH_SHORT).show();
cityList.setVisibility(View.GONE);
cat.setVisibility(View.VISIBLE);
}
});
return V;
}
}

如果有更好的方法来做到这一点,我将不胜感激知道答案。我的第一个想法是使用微调器,但我遇到了同样的问题,但没有在更多开关中嵌套 380 个开关。

最佳答案

不要使用大量的 ListView,而是使用单一的大型数据结构和一个 ListView,用于根据前一个 ListView 中的选择填充的每个维度。

例如,您的数据结构可能包含按大陆、国家、地区和城市划分的位置。每个大陆都有一个国家列表;每个国家都有一个区域列表;每个地区都有一个城市列表。根据数据集的规模,这可能作为一系列嵌套列表来实现,或者您可以从数据库、Web 服务或其他外部机制动态检索下一级。

最初您会有一个显示各大洲的 ListView。一旦用户选择了一个,所选索引就会为您提供国家列表,以填充下一个 ListView,等等区域和城市。

关于android - 如何使用 ListView 选择来确定 Android 中另一个 ListView 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com