Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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
Java 如何将按钮连接到对话框,该对话框将使用用户输入在FrameLayout中编辑文本视图?_Java_Android_Xml_Android Dialogfragment - Fatal编程技术网

Java 如何将按钮连接到对话框,该对话框将使用用户输入在FrameLayout中编辑文本视图?

Java 如何将按钮连接到对话框,该对话框将使用用户输入在FrameLayout中编辑文本视图?,java,android,xml,android-dialogfragment,Java,Android,Xml,Android Dialogfragment,我一点也不懂。如何创建一个,如何从中获取用户输入,并将其设置为文本视图 我想在点击标题按钮时,弹出一个对话框片段,要求用户输入他们情绪板的标题。用户输入一个标题。当他们点击PostiveButton“Done”时,用户的标题被设置在情绪板的左上角框架中,其中有一个带有提示的文本视图 求你了!提问,因为我不太了解对话框的设置 这是我的主要活动中的主要版面的图片。每个元素都有一个“@+id/” 您可以将情绪板标题文本视图设置为静态,然后使用edittext将其调用到alertdialog以将其设置为

我一点也不懂。如何创建一个,如何从中获取用户输入,并将其设置为文本视图

我想在点击标题按钮时,弹出一个对话框片段,要求用户输入他们情绪板的标题。用户输入一个标题。当他们点击PostiveButton“Done”时,用户的标题被设置在情绪板的左上角框架中,其中有一个带有提示的文本视图

求你了!提问,因为我不太了解对话框的设置

这是我的主要活动中的主要版面的图片。每个元素都有一个“@+id/”


您可以将情绪板标题文本视图设置为静态,然后使用edittext将其调用到alertdialog以将其设置为文本(setText) 像这样

   final EditText edittext = new EditText(MainActivity.this);

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setMessage("Input Title")
                .setView(edittext)
                .setCancelable(false)
                .setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        YourCustomDialog.your_title_textviewMoodboard.setText(edittext.getText().toString());

                    }
                })
                .setNegativeButton("Back", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
在自定义对话框中。全局声明textview静态

public static TextView your_title_textviewMoodboard;

您正在寻找的解决方案是回调:

  • 使用方法创建一个接口以用作回调
  • 在活动上实现接口
  • 创建对话框片段并在onAttach中获取接口
  • 显示活动上的对话框片段
  • 在关闭对话框片段时,使用接口实例传递文本
  • 下面是一段对话的要点


    问题是,您希望将一个对话框片段与另一个组件连接起来,并且希望将其向前倾斜。这被认为不是一个好的做法,因为yiu创建了两个高度连接的组件,因此最好使用数据持久性和某种形式的react编程

    将自定义布局添加到警报对话框是一种困难的做法,更易于使用对话框。更简单的方法是在活动中创建对话框的活动上有一个字段,单击“确定的侦听器”按钮将关闭对话框,并获取对话框文本并将其发送到活动中。您可以将情绪板标题文本视图设置为静态,然后使用edittext调用alertdialog以将其设置为文本(setText).@cutiko您是指XML中的a吗?我的教授希望我们按下一个按钮,弹出一个对话框,然后编辑一些文本,然后我希望将文本发送到Mood Board内部的左上角框架布局,这是一个带有多个框架布局的约束布局。这可能吗?我不介意用不同的方式来做,我只是不想偏离人们对我的要求太多。看看这个要点,我不知道你为什么要对这个片段进行索引tag@Cutiko我很抱歉。我需要从头开始,因为我不明白github代码应该放在哪里,应该使用哪些部分。我不知道为什么,但我似乎无法理解这一点。我想我需要一些睡眠。我可以在早上看这个。我想我开始看到形状了。谢谢。:)接口回调{updateText(String text)}应该在哪个类中。接口可以是自己的类,接口被定义为一种特殊的类,如果您想要ir嵌套,那么它应该是活动,因为它是活动回调。我没有为对话框片段制作布局。所以我不能从它那里得到意见,因为它不存在。我不在乎我的教授想要什么了。我从一开始就讨厌这些对话。他们很难相处。我只想让标题按钮帮助用户更改情绪板的标题。我会为对话片段创建一个布局,提供帮助,了解我的教授做错了什么,然后学习Android Jetpack,这是你在一段时间内无法学习的
    interface Callback {
        updateText(String text)
    }
    
    class CoolActivity... implements Callback
    
    onCreate {
        //find your views
        showDialogBtn.setOnClickListener(...
                    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            Fragment prev = getSupportFragmentManager().findFragmentByTag("yourTag");
            if (prev != null) {
                ft.remove(prev);
            }
            ft.addToBackStack(null);
    
            DialogFragment dialogFragment = ExampleDialogFragment.newInstance();
            dialogFragment.show(ft, "yourTag");
         )
    }
    
    
    @Override
    updateText(String text) {
        youtView.setText(text)
    }
    
    class CoolDialogFragment extend DialogFragment {
    
         private Callback callback;
    
    
         @Override
          void onAttach(Context context) {
              callback = (Callback) context
          }
    
          @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Dialog dialog = new Dialog(getActivity());
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            return dialog;
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            return inflater.inflate(R.layout.dialog_fragment_example, container, false);
        }
    
        @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
             //find the views in the dialog fragment
             closeBtn.clickListener(...
                   callback.updateText(edittext.getText().toString())
                   dismiss()
             )
        }
    }