フラグメントのリストビューをクリックして詳細画面にフラグメントに遷移するプログラムを書いています。
リストで利用した情報をそのまま遷移先のフラグメントで使用したいです。
bundleに保存しようとしたところ、String codeForBundleに代入する部分で、codeのシンボルを見つけられませんというエラーが生じました。
かなりの初心者的な質問とは承知していますが、ListViewに使われた値はどこから呼び出せばいいのでしょうか?
ListAdapter
1 private class ViewHolder{ 2 TextView code; 3 TextView name; 4 }
Fragment_Manage.java
1 2 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 3 @Override 4 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 5 Fragment_Manage_Detail fragment = new Fragment_Manage_Detail(); 6 Bundle bundle = new Bundle(); 7 String codeForBundle = code[position]; 8 String nameForBundle = name[position]; 9 bundle.putString("code",codeForBundle); 10 bundle.putString("name",nameForBundle); 11 fragment.setArguments(bundle); 12 FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 13 FragmentTransaction transaction = fragmentManager.beginTransaction(); 14 transaction.replace(R.id.main_frame, fragment); 15 transaction.addToBackStack(null); 16 transaction.commit(); 17 } 18 });
mailListAdapter
1public class MainListAdapter extends BaseAdapter { 2 Context context; 3 private LayoutInflater layoutInflater; 4 ArrayList<MainList> mainList; 5 6 7 public MainListAdapter(Context context){ 8 this.context = context; 9 this.layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 10 } 11 12 13 public void setMainList(ArrayList<MainList> mainList) { 14 this.mainList = mainList; 15 } 16 17 @Override 18 public int getCount(){ 19 return mainList.size(); 20 } 21 22 @Override 23 public Object getItem(int position){ 24 return mainList.get(position); 25 } 26 27 @Override 28 public long getItemId(int position) { 29 return 0; 30 } 31 32 33 34 private class ViewHolder{ 35 TextView meigaracode; 36 TextView companyname; 37 TextView bbstart; 38 TextView bbend; 39 TextView yosokakaku; 40 } 41 42 @Override 43 public View getView(int position, View convertView, ViewGroup parent){ 44 45 ViewHolder viewHolder; 46 if(convertView == null){ 47 LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 48 convertView = inflater.inflate(R.layout.mainlist, parent, false); 49 viewHolder = new ViewHolder(); 50 viewHolder.meigaracode = (TextView)convertView.findViewById(R.id.meigaraText); 51 viewHolder.companyname = (TextView)convertView.findViewById(R.id.companynameText); 52 viewHolder.bbstart = (TextView)convertView.findViewById(R.id.bbStart); 53 viewHolder.bbend = (TextView)convertView.findViewById(R.id.bbEnd); 54 viewHolder.yosokakaku = (TextView)convertView.findViewById(R.id.yosoKabuka); 55 56 convertView.setTag(viewHolder); 57 } else { 58 viewHolder = (ViewHolder)convertView.getTag(); 59 } 60 MainList item = (MainList)getItem(position); 61 62 viewHolder.bbstart.setText(item.getBbstart()); 63 viewHolder.bbend.setText(item.getBbend()); 64 viewHolder.meigaracode.setText(item.getMeigaracode()); 65 viewHolder.companyname.setText(item.getCompanyname()); 66 return convertView; 67 } 68 69 70}
Fragment_Manage
1public class Fragment_Manage extends Fragment { 2 3 private static final String TAG = "MainActivity"; 4 private ArrayList<MainList> main_List = new ArrayList<MainList>(); 5 MainListAdapter adapter; 6// MainListAdapter adapter = new MainListAdapter(null, main_List); 7 8 ListView mListView; 9 10 11 public void onCreate(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 // setContentView(R.layout.activity_main); 14 } 15 16 17 @Nullable 18 @Override 19 public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 20 final View v = inflater.inflate(R.layout.fragment_manage, container, false); 21 22 mListView = (ListView) v.findViewById(R.id.main_listview); 23 24 String url = "http://*/api/info/"; 25 26 JsonArrayRequest jsArrayRequest = new JsonArrayRequest( 27 Request.Method.GET, 28 url, 29 null, 30 new Response.Listener<JSONArray>() { 31 @Override 32 public void onResponse(JSONArray response) { 33 main_List.clear(); 34 for (int i = 0; i < response.length(); i++) { 35 36 try { 37 JSONObject obj = response.getJSONObject(i); 38 MainList mainList = new MainList(); 39 mainList.setMeigaraCode(obj.getString("meigaracode")); 40 mainList.setCompanyname(obj.getString("companyname")); 41 mainList.setBbstart(obj.getString("bbstart")); 42 mainList.setBbend(obj.getString("bbend")); 43 main_List.add(mainList); 44 45 } catch (JSONException e) { 46 e.printStackTrace(); 47 } 48 49 } 50 MainListAdapter adapter = new MainListAdapter(v.getContext()); 51 adapter.setMainList(main_List); 52 mListView.setAdapter(adapter); 53 } 54 }, 55 new Response.ErrorListener() { 56 @Override 57 public void onErrorResponse(VolleyError error) { 58 Log.d(TAG, error.toString()); 59 60 } 61 } 62 ); 63 MySingleton.getInstance(this.getActivity()).addToRequestQueue(jsArrayRequest); 64 65 //以下、クリックによる遷移を試作H31.3.04 66 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 67 @Override 68 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 69 Fragment_Manage_Detail fragment = new Fragment_Manage_Detail(); 70 Bundle bundle = new Bundle(); 71 MainList item = (MainList)adapter.getItem(position); 72 String meigaracodeForBundle = item.getMeigaracode(); 73 String companynameForBundle = item.getCompanyname(); 74 String bbstartForBundle = item.getBbstart(); 75 String bbendForBundle = item.getBbend(); 76 bundle.putString("meigaracode",meigaracodeForBundle); 77 bundle.putString("companyname",companynameForBundle); 78 bundle.putString("bbstart",bbstartForBundle); 79 bundle.putString("bbend",bbendForBundle); 80 fragment.setArguments(bundle); 81 FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 82 FragmentTransaction transaction = fragmentManager.beginTransaction(); 83 transaction.replace(R.id.main_frame, fragment); 84 //backボタンで戻ってこれるように 85 transaction.addToBackStack(null); 86 transaction.commit(); 87 } 88 }); 89 90 91// return super.onCreateView(inflater, container, savedInstanceState); 92 return v; 93 } 94 95 96} 97
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/13 13:54
2019/03/14 15:06 編集
2019/03/14 14:15
2019/03/14 14:38
2019/03/14 15:01
2019/03/14 15:09
2019/03/15 12:03
2019/03/15 16:44
2019/03/15 22:31
2019/03/15 22:32
2019/03/16 00:56
2019/03/17 14:01