在ListActivity中排序ListView



我创建了一个ListActivity(是的,没有XML布局的那个),它显示了从ArrayList<String>获得的值,通过adapter

事实是,添加到ArrayList的最后一个字符串,是最新出现在ListView上,相反,我想对ListView进行排序,以便添加的最后项将是第一个项在顶部ListView中,如何做到这一点?

看,这是我的应用程序的一个片段,关于ListActivityonCreate()方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    ArrayList<String> history = intent.getStringArrayListExtra("HistoryList");
    ListView historyList = getListView();
    ArrayAdapter<String> listAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, history);
    historyList.setAdapter(listAdapter);
}

没什么复杂的。您只需要反转列表历史记录。

Collections.reverse(history);

你应该读一点关于Java的理论,并学习如何寻找。否则,一切美好都不会结束。代码看起来像这样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = getIntent();
    ArrayList<String> history = intent.getStringArrayListExtra("HistoryList");
    Collections.reverse(history);
    ListView historyList = getListView();
    ArrayAdapter<String> listAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, history);
    historyList.setAdapter(listAdapter);
}

怎么做?

history重新排序为您想要的顺序,例如通过Collections.reverse()

尝试编写比较器对字符串进行排序。

最新更新