私はこの奇妙な問題にいくつかの助けをすることができます。 最初の読み込み時に、私のリストビューは空白です。 別のアクティビティを終了するか、同じアクティビティをリフレッシュしてページを再度ロードすると、私のリストが表示されます。 アイデアありがとう。アダプターメソッドnotifyDataSetChanged not refresh listview
マイ変数:
private static ArrayList<Media_Info> mediaIntroQueueList = new ArrayList<Media_Info>();
private static ArrayList<String> mediaIntroQueueListTitles = new ArrayList<>();
ArrayAdapter<String> stringAdapter;
ListView mediaList;
OnCreate関数:あなたはmediaIntroQueueListTitlesに新しいのArrayListを割り当てられたので、私は私の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