私はタブで3つのフラグメントを持つアクティビティを持っています。そのうちの1つは "TaskFragment"と呼ばれています。DialogFragmentの後のフラグメント内のリフレッシュアダプタdbflow insert
私の主なアクティビティでは、フラグメントをロードするだけです。 TaskFragmentでは、私は正常に動作しているRecyclerViewを持ち、意図したとおりにアイテムを表示しています。
問題は、DialogFragmentを使用してデータを挿入すると、DbFlow ORMを使用してデータを挿入するためですが、DetailMainActivity内のTaskFragmentフラグメントにあるため、アダプタをリフレッシュしません私が言ったように活動。
私は、アダプタをリフレッシュするためにonResume()とonPause()を使用しようとしましたが、アクティビティが一時停止しないため、またはDialogFragmentのonresumeで呼び出されません。
私もインターフェイスを使用しようとしましたが、うまく動作せず、私はstackoverflowとgoogleを一切検索しませんでした。
あなたがよりよく理解して私はここに私のコードの一部を残す:
DetailMainActivity.java ここでのonClickインターフェイスで私が入力したユーザ情報にDialogFragmentを示しました。このフラグメントでTaskFragment.java
FragmentManager fm = getSupportFragmentManager();
AddSimpleTask sptask = new AddSimpleTask();
sptask.show(fm, "tag");
は、私は私のRecyclerView
private void setupRecyclerView() {
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
mRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (DetailMainActivity.FAB_Status) {
DetailMainActivity.hideFAB();
DetailMainActivity.FAB_Status = false;
}
return false;
}
});
}
private void setupAdapter() {
adapter = new DetailMainTaskAdapter(simpleTaskList, this);
}
AddSimpleTask を持っており、これが私のDialogFragmentです。 DialogFragmentが早期に却下されるのを避けるためにsetOnShowListener()を設定しました。
@Override
public void onShow(DialogInterface dialogInterface) {
final AlertDialog dialog =(AlertDialog) getDialog();
if (dialog != null){
Button positiveButton = dialog.getButton(Dialog.BUTTON_POSITIVE);
Button negativeButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
positiveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mEditTextName.getText().toString().trim().isEmpty() ||
mEditTextContent.getText().toString().trim().isEmpty()) {
if (mEditTextName.getText().toString().trim().isEmpty()) {
mEditTextName.setError("Can not be empty");
}
if (mEditTextContent.getText().toString().trim().isEmpty()) {
mEditTextContent.setError("Can not be empty");
}
}else {
presenter.beingInsertion(mEditTextName.getText().toString().trim(), mEditTextContent.getText().toString().trim()
, foreignId);
}
}
});
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}
}
挿入がonInsertSuccess方法は、(私はMVPを使用しています)と呼ばれ、正常に達成された場合
@Override
public void onInsertSuccess() {
Snackbar.make(getActivity().findViewById(R.id.containerMainDetail), "Actividad agregada", Snackbar.LENGTH_SHORT).show();
dismiss();
}
私は多くの場所でadapter.notifyDataSetChanged()と呼ばれている、と私はまた、カスタムで試してみましたインターフェイスが、私はこの仕事をすることはできません。
ご迷惑をおかけして申し訳ありませんが、ご協力いただきありがとうございます。