由于locaion(网络或gps)需要一段时间才能接收,因此如何在列表视图中使用位置数据。如果在创建时填充了列表视图,则通常尚未找到该位置,并且该位置将为null。
构建此类视图以呈现列表视图然后随后使用位置数据填充行的最佳方法是什么?
如果是,或者如果不是,最好的方法是什么?您将如何使用代码示例实现此目的?
答案 0 :(得分:0)
您可以使用其数据列表设置ListView,并在数据更改时通知它。这是一个例子。
ArrayList<String> myData = new ArrayList<String>();
ListView myListView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
myListView = (ListView)findViewById(R.id.mylistview);
myListView.setAdapter(new ArrayAdapter<String>(this, R.id.textlayout, myData));
}
我所做的是获取列表视图并使用空数组列表设置适配器。现在,无论何时我想更新列表视图数据,我都会执行以下操作。
myData.add("My new location");
myListView.getAdapter().notifyDataSetChanged();
列表视图将会更新。另一种方法是将数据直接添加到适配器而不是传入的列表。
myArrayAdapter.setNotifyOnChange(true);
myArrayAdapter.add("My new location");