Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在片段中创建对话框,并从对话框中创建dialogfragment,并希望访问dialogfragment中对话框的文本视图_Android - Fatal编程技术网

Android 在片段中创建对话框,并从对话框中创建dialogfragment,并希望访问dialogfragment中对话框的文本视图

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

我在DiscussionFragment中创建了一个自定义对话框。对话框正在成功运行

//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(...);
}