簡體   English   中英

片段和Listview子項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM