my_list = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
my_list.sort(lambda x,y : cmp(x['name'], y['name']))
my_list
теперь будет тем, что Вы хотите.
(3 года спустя) Отредактированный для добавления:
новое key
аргумент более эффективен и более опрятен. Лучший ответ теперь похож:
my_list = sorted(my_list, key=lambda k: k['name'])
... лямбда, IMO, легче понять, чем operator.itemgetter
, но YMMV.
Короткий ответ: при создании ListView, Вы передаете его ссылка на данные. Теперь, каждый раз, когда эти данные будут изменены, они будут влиять на представление списка и таким образом добавлять объект к нему после вызова adapter.notifyDataSetChanged ();.
при использовании RecyclerView обновите только последний элемент (если Вы добавили его в конце списка objs) для сохранения памяти с: mAdapter.notifyItemInserted (mItems.size () - 1);
Это - простой ответ, как добавить данные динамично в listview android kotlin
class MainActivity : AppCompatActivity(){
var listItems = arrayListOf<String>()
val array = arrayOf("a","b","c","d","e")
var listView: ListView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.scrollview_layout)
listItems.add("a")
listItems.add("b")
listItems.add("c")
listItems.add("d")
listItems.add("e")
//if you want to add array items to a list you can try this for each loop
for(items in array)
listItems.add(items)
Log.e("TAG","listItems array: $listItems")
}
}
Здесь, я просто объяснил два пути, мы можем сделать это много путей.