Android 在片段中创建对话框,并从对话框中创建dialogfragment,并希望访问dialogfragment中对话框的文本视图
我在DiscussionFragment中创建了一个自定义对话框。对话框正在成功运行Android 在片段中创建对话框,并从对话框中创建dialogfragment,并希望访问dialogfragment中对话框的文本视图,android,Android,我在DiscussionFragment中创建了一个自定义对话框。对话框正在成功运行 //Dialog in Fragment Class final Dialog dialog = new Dialog(getActivity()); dialog.setContentView(R.layout.create_post_layout); dialog.setTitle("Post"); 我正在从对话框的按钮OnClick
//Dialog in Fragment Class
final Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.create_post_layout);
dialog.setTitle("Post");
我正在从对话框的按钮OnClick调用一个TimePickerFragment,该按钮正在成功打开
setTimeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new TimePickerFragment();
newFragment.show(getFragmentManager(), "create_post_layout");
//(getFragmentManager(),"post_layout");
}
});
现在我想访问TimePickerFragment类中对话框的TextView,如下所示
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//Do something with the user chosen time
//Get reference of host activity (XML Layout File) TextView widget
View dialogView = getActivity().getLayoutInflater().inflate(R.layout.create_post_layout, null);
TextView tv = (TextView) dialogView.findViewById(R.id.postTimeTV);
tv.setText("String");
String min = String.valueOf(minute);
setText不工作,返回E/textview:initAddationalStyle默认值
无NullPointerException
对于“仅活动而非对话框”,我可以在OnTimeSet中访问TextView,如下所示
TextView tv = (TextView) getActivity().findViewById(R.id.postTimeTV);
tv.setText("String");
String min = String.valueOf(minute);
您可能想发布更多的TimePickerFragment代码以获得更好的答案 据我所知,您正在onTimeSet()中扩展布局文件,而不将其用作对话框的内容视图。 然后你得到这个新膨胀视图的文本视图,它不是对话框的视图 我将访问DialogFragments onCreateDialog()中的Textview,以确保使用正确的视图并将其保存在全局变量中。 比如:
您可能想发布更多的TimePickerFragment代码以获得更好的答案 据我所知,您正在onTimeSet()中扩展布局文件,而不将其用作对话框的内容视图。 然后你得到这个新膨胀视图的文本视图,它不是对话框的视图 我将访问DialogFragments onCreateDialog()中的Textview,以确保使用正确的视图并将其保存在全局变量中。 比如:
实际上,TimePickerFragment并不创建textview所在的对话框。那我为什么要打电话给你我想我错了。。。您创建了一个带有按钮的常规对话框来打开TimePickerFragmentDialog,然后您想在常规对话框中显示时间?实际上TimePickerFragment不创建textview所在的对话框。那我为什么要打电话给你我想我错了。。。您创建了一个带有按钮的常规对话框来打开TimePickerFragmentDialog,然后您想在常规对话框中显示时间吗?
private TextView tv;
@Override
public Dialog onCreateDialog(){
....
tv = (TextView) ... findById(...)
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
tv.setText(...);
}