我这样实现了一个对话框片段:
public class ProgressFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.installation_page, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
titleView = (TextView) v.findViewById(R.id.progressText);
titleView.setText("progress");
builder.setView(v);
return builder.create();
}
TextView titleView;
public TextView getTextView() {
return titleView;
}
我希望能够从任何地方更新 titleView 的内容。例如:
ProgressFragment progressFragment = new ProgressFragment();
progressFragment.show(getSupportFragmentManager(),"");
问题是试验者喜欢:
((TextView)progressFragment.getDialog().findViewById(R.id.progressText)).setText("text");
并且
progressFragment.getTextView().setText("text");
并且
((TextView)progressFragment.getView().findViewById(R.id.progressText)).setText("working in this place");
所有返回值都为null。我该怎么做?谢谢。