2016-12-12 14 views
1

ListViewのカスタムがあり、PHPを使用してサーバーからデータを取り込み、うまくいきます。私はリストの更新のためにnotifyDataSetChangedを持っています。しかし、問題は、サーバー上のデータが変更された場合です。ListViewの更新されたデータを見るためにボタンを押す必要があります。 WhatsAppリストに類似した更新されたリストを表示するには、より良い方法がありますか?は、更新されたListViewをリアルタイムで見るためにボタンを押す必要があります

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_seconds); 

    contlist = (ListView)findViewById(R.id.contlist); 
    startService(new Intent(this, serv.class)); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    if(!prefs.getBoolean("firstTime", false)) { 
     try { 
      getNumber(seconds.this.getContentResolver()); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putBoolean("firstTime", true); 
     editor.commit(); 
    } else { 
     musers = (ArrayList<mobstat>) mobstat.listAll(mobstat.class); 
     descAdapter = new DescAdapter(seconds.this, musers, seconds.this); 
     contlist.setAdapter(descAdapter); 
    } 

    intentFilter = new IntentFilter(); 
    intentFilter.addAction(Intent.ACTION_TIME_TICK); 

    seconds.this.registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      descAdapter.notifyDataSetChanged(); 
     } 
    }, intentFilter); 
} 

私はnotifyDataSetChangedためOnCreate方法でintentfilterを使用しています。私はOnStartOnResumeの方法でインテントフィルタコードを配置しましたが、私は更新されたリストを見るために戻るボタンをクリックする必要があります。更新されたリストをリアルタイムで表示するには?

+0

http://stackoverflow.com/questions/18337536/android-overriding-onbackpressed –

+0

私は、onBackPressedメソッド内でIntentfilterコードを使用したいのですか? – user2269164

+0

はいはい要件によります –

答えて

0

サーバーで何らかの変更が発生した場合は、毎回データを更新する必要があります。しかし、戻るボタンを押さなくても実現するには、Swipe to Refreshパターンを実装することができます。

私はthis linkに行くことをお勧めしますそれの基本的な例!

+0

ねえ、私はスワイプリフレッシュを認識していますが、私はリアルタイムでリストビューを更新する必要があります。ありがとう。 – user2269164

+0

@ user2269164気にしないでください!ちょうどあなたにオプションを示したかった! –

関連する問題