ある ListView での選択を使用して、別の ListView に表示されるリストを 4 つの次元に決定しようとしています。たとえば、最初のリストは次のようになります。
A、B、C
次に、リストAを選択すると、
1、2、3
そしてBは戻ってきます。
4、5、6
1を選択した場合
Ⅰ、Ⅱ、Ⅲ。
5 を選択すると、さらに別のリストが返されます。これは、最終的にユーザーの選択となる 4 番目の最終リストに続きます。
開始する最終的な ListView には、約 380 の異なるリストが含まれる可能性があります。A を選択してから 2 を選択し、次に XII を選択すると、正しいリストが表示されます。おそらく、選択に従ってリストに A2XII と名前を付け、その名前でリストを呼び出すことができます。
現在、私の理論は、最初の ListView を設定し、次にリスナーでそれを INVISIBLE にして、次に VISIBLE にすることです。次に、前の選択を使用して、アダプタが使用するリストを決定します。
私の質問は次のとおりです。1 つのリストから選択して、次のリストを名前で決定するにはどうすればよいですか?
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 個のスイッチを複数のスイッチの中に入れ子にしないと、同じ問題に遭遇しました。