使用处理程序或任何其他技术填充listView/在Create上从外部更新listView



我有一个成员变量StringmActivity[],它通过onConnected函数每3秒更新一次。onCreate连接API(使用API.connect())。我必须显示保存在mActivity中的数据,但我无法在Connect上从外部更新数据。

如何使用处理程序或任何其他技术来更新listView?

完整的代码太长了,无法发布,所以我发布了一些片段。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mApiClient.connect();
}

字符串变量被声明为成员变量。

@Override
public void onConnected(@Nullable Bundle bundle) {
Intent intent = new Intent(this, ActivityRecognizedService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(mApiClient, 3000, pendingIntent);
}

onConnected调用ActivityRecognizedService,该服务更改mActivity[]的值(通过创建Activity的对象);因此mActivity的值每3秒改变一次。我需要在listView中更新此项。

将新条目添加到数组中,然后在适配器上调用notifyDataSetChanged()来更新ListView

例如,你可以这样做:

private void refreshListView(List<String> newEntries) {
// yourList is the List that has the data for your adapter
yourList.clear();
yourList.addAll(newEntries);
// yourListAdapter is the adapter for your ListView
yourListAdapter.notifyDataSetChanged();
}

您可以从类中的任何位置调用此方法。

尝试使用这个

runOnUiThread (new Thread(new Runnable() { 
public void run() {
updateListview();
}
}));

最新更新