我有一个MainActivity
,如下所示:
我的问题是如何打开DialogFragment
点击TextView
点击此处,为“播放”按钮旁边的任务命名。
以下是我TextView
的代码:
TextView buttonView = new TextView(this);
buttonView.setHint("click HERE to give a name to the task");
buttonView.setX(50);
buttonView.setY(50);
以及DialogFragent
的代码:
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);
}
答案 0 :(得分:1)
您可以将onClickListener
设置为Android中的任何视图,然后执行您想要的任何行为
buttonView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Create new DiaglogFragment and display it
}
};
这与用于任何类型的按钮按压的方法相同。 StackOverflow上还有很多其他答案,还有其他例子。如果您需要有关点击识别或显示片段的更多信息,快速搜索将在Stack上找到它。
答案 1 :(得分:0)
buttonView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment frag = new ButtonNameDialogFragment();
frag.show(*context*, ButtonNameDialogFragment.class.getCanonicalName());
}
});