[英]Fragments and Listview Subitems
我目前无法在列表视图中显示我的子项。 我不确定是什么原因造成的。 我曾尝试使用.put
但未成功。
这是我的代码:
public class HomeFragment extends Fragment {
private ListView lv_shifts;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
((MainActivity)getActivity()).setActionBarTitle("WorkMi");
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
lv_shifts = view.findViewById(R.id.shfits_lv);
HashMap<String,String> day_Time = new HashMap<String, String>();
day_Time.put("4/12/18","7AM - 2PM" );
day_Time.put("4/14/18","5PM - 10PM" );
day_Time.put("4/15/18","10AM - 2PM" );
day_Time.put("4/16/18","7AM - 4PM" );
day_Time.put("4/18/18","5AM - 2PM" );
day_Time.put("4/21/18","7AM - 2PM" );
List<HashMap<String, String>> listItems = new ArrayList<>();
SimpleAdapter adapter = new SimpleAdapter(getContext(), listItems, R.layout.shift_list,
new String[]{"First Line", "Second Line"},
new int[]{R.id.date_tv, R.id.time_tv});
Iterator it = day_Time.entrySet().iterator();
while (it.hasNext()){
HashMap<String,String> resultMap = new HashMap<String, String>();
Map.Entry pair = (Map.Entry)it.next();
resultMap.put("First Line", pair.getKey().toString());
resultMap.put("Second Line", pair.getValue().toString());
listItems.add(resultMap);
}
lv_shifts.setAdapter(adapter);
return view;
}
}
您正在将listItem添加到适配器中,然后再将项目添加到listview
,这导致空的listView
。 在实例化适配器之前添加while
循环,然后再设置setAdapter
。
您可以在一行中以简单视图显示数据。 为什么需要hashMap?
String[] day_Time = new String[] { "4/12/18 7AM - 2PM",
"4/14/18 5PM - 10PM",
"4/15/18 10AM - 2PM",
"4/16/18 7AM - 4PM",
"4/18/18 5AM - 2PM",
"4/21/18 7AM - 2PM"}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, day_Time);
lv_shifts = view.findViewById(R.id.shfits_lv);
// Set Adapter to List View to display items
lv_shifts.setAdapter(adapter);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.