我有三个片段。一个片段显示了回收者视图列表项,另一个片段打开了一个对话框片段,它是一种形式。它需要数据并添加到列表中。现在,在添加列表项之后,列表应该更新为默认行为,但它没有得到更新。但是当我在关闭之后打开活动时它会来。任何人都可以告诉我或者可以提供某种参考咨询,这应该是什么问题。谢谢。
public class MyDialogFragment extends DialogFragment implements TextView.OnEditorActionListener {
List<CardListDataClass> listDataClasses = new ArrayList<>();
Fragment fragment;
FragmentTransaction ft;
List<CardListDataClass> list;
UserNameListener userNameListener;
private EditText mEditText, mEditText1, mEditText2;
// Empty constructor required for DialogFragment
public MyDialogFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_item_layout, container);
mEditText = (EditText) view.findViewById(R.id.detailEdit);
mEditText1 = (EditText) view.findViewById(R.id.expEdit);
mEditText2 = (EditText) view.findViewById(R.id.expExtra);
CardView submit = (CardView) view.findViewById(R.id.submitDetail);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String det, exp, extra;
det = mEditText.getText().toString();
exp = mEditText1.getText().toString();
extra = mEditText2.getText().toString();
createDb createDb = new createDb(view.getContext());
createDb.dbopen();
createDb.createEntry(det, exp);
createDb.close();
listDataClasses.add(new CardListDataClass(det, exp));
getDialog().dismiss();
}
});
// set this instance as callback for editor action
mEditText.setOnEditorActionListener(this);
getDialog().getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
getDialog().setTitle("Please enter details");
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
userNameListener = (UserNameListener) getActivity();
} catch (ClassCastException c) {
Log.e("ClassCastException", "yeah");
}
}
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// Return input text to activity
userNameListener.onFinishUserDialog(mEditText.getText().toString(), mEditText1.getText().toString());
this.dismiss();
return true;
}
public interface UserNameListener {
void onFinishUserDialog(String detail, String exp);
}
这是一个对话框片段,列表将在另一个片段中更新。
大家好,感谢您的关心。我的问题现在解决了。我正在引用列表的另一个新对象来添加项目。所以这个项目并没有在那里添加。
但是我在这里有另一个问题,我通过指定位置项不是动态添加来添加项目,即
list.add(position,new item(a,b))