2012-11-27 232 views
0

如何在Sqlite Database.My中的更新數據在Fragment代碼正常工作後更新ListFragment,如何更新此列表片段?如何在Sqlite數據庫中更新數據時更新ListFragment

public class MyMasterFragment extends SherlockListFragment { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     /* 
     Runnable mRunnable=new Runnable() { 
       public void run() { 
        Log.i("mylog", "refreshing..."); 
        ListAdapter myListAdapter = getMyListAdapter(); 
        setListAdapter(myListAdapter); 
        Log.i("mylog", "list Updated"); 
        mHandler.postDelayed(this, 60*1000); 
        } 
     }; 

     mHandler.postDelayed(mRunnable, 0); 
     */ 

     ListAdapter myListAdapter = getMyListAdapter(); 
     setListAdapter(myListAdapter); 

    } 

    private ListAdapter getMyListAdapter() { 
     DBHelper dbHelper=new DBHelper(getActivity().getApplicationContext()); 
     SQLiteDatabase myDB = dbHelper.getWritableDatabase(); 


     ListAdapter adapter = null ; 
      String TIME_SORT_ORDER=DBConstants.TIME+" DESC"; 
      String[] mycolumns={DBConstants.SNO,DBConstants.MYSYMBOL,DBConstants.VALUE1,DBConstants.DATE,DBConstants.TIME,DBConstants.VALUE2,DBConstants.VALUE3,DBConstants.VALUE4,DBConstants.VALUE5,DBConstants.VALUE6}; 
      Cursor c1 = myDB.query(DBConstants.LATEST_MY_DATA_TABLE,mycolumns, null, null, null, null, TIME_SORT_ORDER); 

      if(c1.getCount()>0) 
      { 
       adapter=new SimpleCursorAdapter(getActivity().getApplicationContext(), R.layout.live_list_item, c1, new String[] {DBConstants.MYSYMBOL,DBConstants.VALUE1,DBConstants.VALUE2,DBConstants.DATE,DBConstants.TIME}, new int[] {R.id.mysymbol, R.id.value1,R.id.value2,R.id.ldate,R.id.ltime}); 
      } 
     myDB.close(); 
     dbHelper.close(); 
     return adapter; 
    } 
} 

另外我已經研究了Android文檔中的Loader Manager。

  1. 如果我使用loader manager它會自動更新我的片段列表,只要數據在我的數據庫中更新?
  2. 我可以使用支持庫在Pre-honeycomb versionz上使用Loader管理器嗎?
+0

取決於誰更新數據,它是你自己的應用程序? –

+0

從我自己的應用程序sqlite DB – Ramprasad

+1

是的,那麼只要你更新數據,你就可以觸發'getLoaderManager.initLoader()'。 –

回答

1

如果我使用裝載機經理每當我的數據庫更新的數據,它會自動更新我的片列表 ?

不,你必須聽一些內部事件,或外部廣播來重新運行負載。

  • 服務:當您與服務綁定,您共享接口 IBinder 溝通。使用它,服務可以通知您的活動,它已經更新了數據庫 。

我可以使用裝載機經理對預蜂窩versionz使用支持 庫?

是的,你可以。