gpt4 book ai didi

android - 启动结果对话框以将值返回到主要 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:28 25 4
gpt4 key购买 nike

几个小时以来,我一直在努力解决这个问题。

我有一个主要的 Fragment 类,然后从我从那个类中的 ImageView 设置的 onClick 开始,我用一个简单的"is"或“取消”选项启动一个对话框 fragment 。

我该如何做到这一点,以便当用户单击“确定”时,它会将结果代码发送回我的主要 fragment ,告诉它运行一些代码(在我的例子中,我正在设置壁纸)。

这听起来很简单,但似乎无法弄清楚。提前致谢。

Onclick 我想以某种方式将结果返回到:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

final View v = inflater.inflate(R.layout.image_detail_fragment,
container, false);

mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
mImageView.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getActivity().getFragmentManager(),
"MyDialogFragment");

}

public void onDialogOKPressed() {

((ImageDetailFragment) (DialogFragment.this.getParentFragment()))
.onDialogOKPressed();
dismiss();

}
});

return v;
}

对话框类:

class MyDialogFragment extends DialogFragment {
private Button ButtonOk;
private Button ButtonCancel;

public MyDialogFragment() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.prompt, container);
ButtonOk = (Button) view.findViewById(R.id.button1);
ButtonCancel = (Button) view.findViewById(R.id.button2);
getDialog().setTitle("Set Wallpaper?");

ButtonOk.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

((MyDialogFragment)(DialogFragment.this.getActivity())).onDialogOKPressed();
dismiss();


}

});

ButtonCancel.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

MyDialogFragment.this.dismiss();

}
});

return view;

}
}

最佳答案

在您的 Activity 中,添加一个响应按下 OK 按钮的方法,例如 public void onDialogOKPressed()。然后,在 DialogFragment 中确定按钮的 onClickListener 中,执行以下操作:

public void onClick(View v){
((MyActivity)(DialogFragment.this.getActivity())).onDialogOKPressed();
dismiss();
}

或者将新方法放入您的主要 fragment 中并执行此操作:

public void onClick(View v){
((MyMainFragment)(DialogFragment.this.getParentFragment())).onDialogOKPressed();
dismiss();
}

关于android - 启动结果对话框以将值返回到主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19296687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com