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