データベース値のリストであるフラグメントが 1 つあります。ListView を使用して値を画面に表示しています。
データベースにエントリを追加するためのボタンを含む別のフラグメントがあります。だから私の問題は、最初のフラグメントのボタンを押してデータベースにエントリを追加すると、画面に表示されるデータベース値のリストを更新するために 2 番目のフラグメント (またはアプリの 2 番目のページ) が必要になることです。 .
データベース リストのフラグメントは次のとおりです。
public class FragManage extends Fragment {
private PunchesDataSource datasource;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
datasource = new PunchesDataSource(getActivity());
datasource.open();
List<Punch> values = datasource.getAllPunches();
// Use the SimpleCursorAdapter to show the elements in a ListView
ArrayAdapter<Punch> adapter = new ArrayAdapter<Punch>(getActivity(),
android.R.layout.simple_list_item_1, values);
View myFragmentView = inflater.inflate(R.layout.fragment_manage, container, false);
ListView list = (ListView) myFragmentView.findViewById(R.id.list);
list.setAdapter(adapter);
return myFragmentView;
}
}
したがって、ボタンを含む他のフラグメントで adapter.notifyDataSetChanged() を実行したいだけです(次のようなもの):
// Punch OUT button.
Button out_button = (Button) myFragmentView.findViewById(R.id.out_button);
out_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
datasource.createPunch("out-" + getTime());
FragManage.adapter.notifyDataSetChanged();
}
});