我可以使用這個奇怪的問題一些幫助。 第一次加載時,我的列表視圖是空白的。 如果我再次點擊加載頁面,通過退出到其他活動或刷新相同的活動,我的列表顯示。 任何想法?謝謝。適配器方法notifyDataSetChanged不刷新列表視圖
我的變量:
private static ArrayList<Media_Info> mediaIntroQueueList = new ArrayList<Media_Info>();
private static ArrayList<String> mediaIntroQueueListTitles = new ArrayList<>();
ArrayAdapter<String> stringAdapter;
ListView mediaList;
OnCreate中:其中設置我stringAdapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meet);
Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
// LOG
Log.i("Constants", Constants.userID);
mediaList = (ListView) findViewById(R.id.mediaListView);
stringAdapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
mediaIntroQueueListTitles);
mediaList.setAdapter(stringAdapter);
@Override
protected void onStart() {
super.onStart();
Log.i("ACTIVITY", "onStart");
getUserLocation();
getLocalIntroductions();
}
private void getLocalIntroductions() {
/// a bunch of firebase db calls
if (mediaLocationKeysWithinRadius.contains(mediaID)) {
Log.i("media within radius: ", mediaID);
newItems.add(mediaInfoDic);
newItemsTitles.add(title);
}
else {
Log.i("media not in radius: ", mediaID);
}
}
mediaIntroQueueList = newItems;
mediaIntroQueueListTitles = newItemsTitles;
stringAdapter.notifyDataSetChanged();
您是否看到mediaId在首次啓動時登錄?說實話,我很驚訝你看到列表中的任何項目,因爲據我所見,你永遠不會添加任何項目到你的適配器的數據。你也是代碼不完整 –
你可以格式化你的代碼嗎?你確定在更新數據集後立即調用'stringAdapter.notifyDataSetChanged()'嗎? – Raghunandan