我想在一個ListView中使用選擇來確定在另一個ListView中顯示的列表爲四個維度。例如,第一個列表是:如何使用ListView選擇來確定Android中另一個ListView中的列表?
A,B,C
然後通過選擇一個列表,你會得到
1,2,3
和B會返回。
4,5,6
如果選擇1然後
I,II,III。
選擇5會返回另一個列表等等等等。這將繼續進入第四個和最終的列表,最終將是用戶的選擇。
要開始的最終ListView將有大約380個不同的列表它可能是。如果選擇A然後是XII然後顯示正確的列表。據推測,我可以根據選定的名單命名爲A2XII,然後以該名稱呼叫該名單。
目前,我的理論是設置第一個ListView,然後在Listener中使其變爲INVISIBLE並使VISIBLE成爲下一個。然後使用先前的選擇來確定適配器使用的列表。
所以我的問題是:我如何從一個列表中選擇,並讓它按名稱確定下一個列表?
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個交換機。
謝謝。這正是我所期待的。 – CaptinG