2016-03-11 75 views
0

通信的I有兩個片段:AllItemsFragment,CreateItemDialogFragment從對話片段至片段

的AllItemsFragment顯示在源碼的項目的列表,CreateItemDialogFragment用於創建的項目SQLite的。

現在我有一個問題是我創造createItemDialogFragment一個項目後,該對話框解僱,如何更新項目的顯示在AllItemsFragment

在AllItemsFragment:

@Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      Log.d(LIFETAG, "onCreateView"); 
      View view = inflater.inflate(R.layout.fragment_all_items, container, false); 

      ButterKnife.bind(this, view); 
      tvTitle.setText("All Items"); 
      DbHandler dbHandler = new DbHandler(getActivity(),null,null,1); 
      ArrayList<Item> items = dbHandler.getAllItems(); 

      AllItemsAdapter adapter = new AllItemsAdapter(getActivity(),items); 

      lvItems.setAdapter(adapter); 
      return view; 
     } 

在CreateItemDialogFragment:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); 
    View view =inflater.inflate(R.layout.fragment_create_item_dialog,null); 

    ButterKnife.bind(this, view); 
    itemPrice.setInputType(EditorInfo.TYPE_CLASS_NUMBER); 
    return view; 
} 


@OnClick(R.id.clear) 
void clearDialog(){ 
    dismiss(); 
} 


//create item 
@OnClick(R.id.save) 
void saveItem() { 

    if(!itemName.getText().equals(null)||!itemPrice.getText().equals(null)){ 
     String name = itemName.getText().toString(); 

     String priceStr = itemPrice.getText().toString(); 
     Double price = Double.parseDouble(priceStr); 
     Item item = new Item(name,price); 
     DbHandler dbHandler = new DbHandler(getActivity(),null,null,1); 
     dbHandler.addItems(item); 
     dismiss(); 


    } 
} 
+0

您可以使用接口作爲託管活動的回調,然後從活動傳遞到片段。閱讀http://developer.android.com/training/basics/fragments/communicating.html – Raghunandan

+0

請參閱本文 - http://stackoverflow.com/q/15313598/1501644 –

回答

0

嘗試更新AllItemsFragmentonResume回調數據。

@Override 
public void onResume(){ 
    super.onResume(); 
    // update data over here. 
}