我怎样才能从这段代码中的这个对话框片段中取回数据?
How can i get data back from this dialog fragment in this code?
我已经尝试过了,但是没有用。让我展示更多细节好吗?
我有这个 activity:
主要活动
xTipo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ListTipo().show(getSupportFragmentManager(),"ListTipo");
}
});
我的 DialogFragment
有这个 java 代码
对话框片段:
public class ListTipo extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState)
{
int style = DialogFragment.STYLE_NORMAL, theme = 0;
theme = R.style.dTheme;
setStyle(style, theme);
String [] tipos = getActivity().getResources().getStringArray(R.array.tipo_atendimento);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), theme);
builder.setTitle("\b\b\bTipo de Atendimento");
builder.setItems(tipos, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
这项工作很好,但我无法获取结果。
感谢您的耐心等待!
创建一个回调接口,在您的代码中实现它(在您设置侦听器的地方),然后将其作为参数传递到对话框中。
示例:
public interface Callback {
void onResult(Object result);
}
private Callback callback;
public ListTipo(Callback callback) {
this.callback=callback;
}
// where you want to pass the result
callback.onResult(YOUR_RESULT);
创建对话框的位置:
xTipo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ListTipo(result -> {
// run your code with result
}).show(getSupportFragmentManager(),"ListTipo");
}
});
我已经尝试过了,但是没有用。让我展示更多细节好吗?
我有这个 activity:
主要活动
xTipo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ListTipo().show(getSupportFragmentManager(),"ListTipo");
}
});
我的 DialogFragment
有这个 java 代码对话框片段:
public class ListTipo extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState)
{
int style = DialogFragment.STYLE_NORMAL, theme = 0;
theme = R.style.dTheme;
setStyle(style, theme);
String [] tipos = getActivity().getResources().getStringArray(R.array.tipo_atendimento);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), theme);
builder.setTitle("\b\b\bTipo de Atendimento");
builder.setItems(tipos, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
return builder.create();
}
}
这项工作很好,但我无法获取结果。 感谢您的耐心等待!
创建一个回调接口,在您的代码中实现它(在您设置侦听器的地方),然后将其作为参数传递到对话框中。
示例:
public interface Callback {
void onResult(Object result);
}
private Callback callback;
public ListTipo(Callback callback) {
this.callback=callback;
}
// where you want to pass the result
callback.onResult(YOUR_RESULT);
创建对话框的位置:
xTipo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ListTipo(result -> {
// run your code with result
}).show(getSupportFragmentManager(),"ListTipo");
}
});