Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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 如何通过单击文本视图打开DialogFragment_Java_Android_Textview_Android Dialogfragment - Fatal编程技术网

Java 如何通过单击文本视图打开DialogFragment

Java 如何通过单击文本视图打开DialogFragment,java,android,textview,android-dialogfragment,Java,Android,Textview,Android Dialogfragment,我有一个main活动,如下所示: 我的问题是如何打开对话框片段单击“播放”按钮旁边的文本视图“单击此处为任务命名” 这是我的TextView的代码: TextView buttonView = new TextView(this); buttonView.setHint("click HERE to give a name to the task"); buttonView.setX(50); buttonView.setY(50); 以及对话框FRAGENT的代码: public clas

我有一个
main活动
,如下所示:

我的问题是如何打开
对话框片段
单击“播放”按钮旁边的
文本视图
“单击此处为任务命名”

这是我的
TextView
的代码:

TextView buttonView = new TextView(this);
buttonView.setHint("click HERE to give a name to the task");
buttonView.setX(50);
buttonView.setY(50);
以及
对话框FRAGENT
的代码:

public class ButtonNameDialogFragment extends DialogFragment {

    private IFragment iButNamFrag;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder setButNameAlert = new AlertDialog.Builder(getActivity());

        setButNameAlert.setTitle("Set Task name");

        LayoutInflater inflater = getActivity().getLayoutInflater();

        setButNameAlert.setView(inflater.inflate(R.layout.button_name_fragment, null))
            .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Implement dialogPositiveClick

                }
            })
            .setNegativeButton(R.string.undo, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Implement dialogNegativeClick 

                }
            });

        return setButNameAlert.create();

    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        iButNamFrag = (IFragment) activity;
    }

}
以下是界面:

public interface IFragment {

    public void onDialogPositiveClick(DialogFragment dialog);
    public void onDialogNegativeClick(DialogFragment dialog);

}

您可以将
onClickListener
设置为Android中的任何视图,然后执行您想要的任何行为

buttonView.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // Create new DiaglogFragment and display it
    }
};
这是用于任何类型按钮按下的相同方法。关于StackOverflow还有很多其他的答案,还有更多的例子。若您需要关于点击识别或显示片段的更多信息,快速搜索将在堆栈中找到它

buttonView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            DialogFragment frag = new ButtonNameDialogFragment();
            frag.show(*context*, ButtonNameDialogFragment.class.getCanonicalName());
        }
    });