簡體   English   中英

Android ListView子項

[英]Android ListView Subitems

我最近為Android應用程序創建了一個新的ListView對象,但是遇到一些錯誤。 當我嘗試使用簡單適配器創建包含列表中子項目的項目時,創建的最新項目與其他項目重疊。 我正在使用地圖列表來創建項目。

例如,如果我在地圖列表中添加一個顯示“ 1”的項目,並且子項目顯示“ A1”,則將顯示該項目和子項目。 但是,如果我向地圖列表中添加名為“ 2”的子項為“ B2”的新項,則“ 1”和“ A1”將被替換為“ 2”和“ B2”。 ListView上仍然有2個項目,但是其中一個為空,另一個為“ 2”和“ B2”

這是我的代碼:

List<Map<String, String>> data = new ArrayList<Map<String, String>>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView lv = (ListView)findViewById(R.id.listView1);

        Map<String, String> datum = new HashMap<String, String>();
        datum.put("RouterName", "Test1");
        datum.put("RouterIP", "SubTest1");
        data.add(datum);

        Map<String, String> datum2 = new HashMap<String, String>();
        datum.put("RouterName", "Test2");
        datum.put("RouterIP", "SubTest2");
        data.add(datum2);

        SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] {"RouterName", "RouterIP"}, new int[] {android.R.id.text1, android.R.id.text2});
        lv.setAdapter(adapter);
    }

更改列表類型將不起作用,因為簡單適配器專門使用“地圖列表”。

嗨,我在存儲在Hashmap中時發現了一些小錯誤。 在那個HashMap對象沒有創建。 前一個實例將被刪除。

請使用以下代碼。 希望對您有幫助。

    ArrayList<HashMap<String, String>> data;
    private String[] titleArray,subItemArray;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);
    ListView lv = (ListView)findViewById(R.id.listview);
    data = new ArrayList<HashMap<String, String>>();
    titleArray=new String[]{"Test1","Test2"};
    subItemArray=new String[]{"SubTest1","SubTest2"};
    for(int i=0;i<titleArray.length;i++){
        HashMap<String,String> datum = new HashMap<String, String>();
        datum.put("RouterName", titleArray[i]);
        datum.put("RouterIP", subItemArray[i]);
        data.add(datum);
    }
    SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] {"RouterName", "RouterIP"}, new int[] {android.R.id.text1, android.R.id.text2});
    lv.setAdapter(adapter);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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