我正在尝试使用一个 ListView 中的选择来确定在另一个 ListView 中显示的列表为四个维度。例如,第一个列表是:
甲、乙、丙
然后通过选择列表 A 你会得到
1、2、3
B会回来。
4、5、6
如果选择了 1 则
一、二、三。
选择 5 将返回另一个列表,依此类推。这将继续到最终将是用户选择的第四个和最终列表。
最终的 ListView 开始时将有大约 380 个不同的列表。如果选择 A 然后 2 然后 XII 然后显示正确的列表。大概我可以根据选择将列表命名为 A2XII,然后用该名称调用列表。
目前,我的理论是设置第一个 ListView 然后在 Listener 中使其不可见并使其下一个可见。然后使用之前的选择来确定 Adapter 使用的列表。
所以我的问题是:我如何从一个列表中选择并让它按名称确定下一个列表?
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;
}
}
如果有更好的方法可以做到这一点,我将非常感激知道答案。我的第一个想法是使用 Spinners,但在没有将 380 个 Switch 嵌套在更多 Switch 中的情况下,我遇到了同样的问题。