package org.ntlab.radishforandroidstudio.cactusClient.views; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import net.arnx.jsonic.JSON; import net.arnx.jsonic.TypeReference; import org.ntlab.radishforandroidstudio.R; import org.ntlab.radishforandroidstudio.cactusClient.connections.InstancesFragmentConnection; import org.ntlab.radishforandroidstudio.cactusClient.models.instance.Instance; import org.ntlab.radishforandroidstudio.framework.network.CallBack; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class InstancesFragment extends BaseFragment { private InstancesFragmentConnection connection; ArrayList<Map.Entry<String, Instance>> listInstances; ListView listView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.instances_fragment, container, false); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { connection = new InstancesFragmentConnection(); connection.setCallBack(new CallBack() { @Override public void onResponse(String response) { //通信した時の処理 HashMap<String, Instance> mapInstances = JSON.decode(response, new TypeReference<HashMap<String, Instance>>() {}); System.out.println(response); listInstances = new ArrayList<>(mapInstances.entrySet()); ArrayList<String> listNames = new ArrayList<>(); for (Map.Entry<String, Instance> entry : listInstances) { listNames.add(entry.getValue().getName()); } // ListViewをセット ArrayAdapter adapter; adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, listNames); listView = (ListView) view.findViewById(R.id.list_view); listView.setAdapter(adapter); // セルを選択されたら詳細画面フラグメント呼び出す listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int InstanceNum, long id) { //ここでサーバーに何番のインスタンスが選ばれたのかを送信して、受け取った値に応じてキャラクターを送信しなければならない //................................................... //InstanceNum+で選ばれたインスタンスわかるで!数字は0からやで!例えば1はデータ2やで!やで String[] s = listInstances.get(InstanceNum).getKey().split("/"); CharactersFragment fragment = new CharactersFragment(); Bundle bundle = new Bundle(); bundle.putSerializable("instanceId", s[s.length - 1]); fragment.setArguments(bundle); //画面きりかえ replaceFragment(R.id.fragment_place, fragment, true); } }); } }); connection.doGet(); } }