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();
}
}
您可以使用接口作爲託管活動的回調,然後從活動傳遞到片段。閱讀http://developer.android.com/training/basics/fragments/communicating.html – Raghunandan
請參閱本文 - http://stackoverflow.com/q/15313598/1501644 –