在片段上显示对话框

时间:2014-04-11 13:33:49

标签: java android android-fragments android-dialog

我必须在Fragment中显示一个对话框。 DialogFragment的代码是:

public class DialogSintesi extends DialogFragment {

private TextView brownModelli;
private TextView brownArticoli;
private TextView blankModelli;
private TextView blankArticoli;
private TextView pedModelli;
private TextView pedArticoli;

public DialogSintesi() {

}

public static DialogFragment newInstance(String title) {
    DialogFragment fragment = new DialogFragment();
    Bundle args = new Bundle();
    args.putString("title", title);
    fragment.setArguments(args);
    return fragment;
}

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

    View view = inflater.inflate(R.layout.popup_campagne_salvate, container);

    TextView brownModelli = (TextView) view.findViewById(R.id.textBrownModelliNumero);
    TextView brownArticoli = (TextView) view.findViewById(R.id.textBrownArticoliNumero);
    TextView blankModelli = (TextView) view.findViewById(R.id.textBlankModelliNumero);
    TextView blankArticoli = (TextView) view.findViewById(R.id.textBlankArticoliNumero);
    TextView pedModelli = (TextView) view.findViewById(R.id.textPedModelliNumero);
    TextView pedArticoli = (TextView) view.findViewById(R.id.textPedArticoliNumero);

    getDialog().setTitle("Sintesi Campagna");

    return view;
}

}

我尝试将对话框显示到自定义数组适配器(按列表视图中的按钮)

info.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View arg0) {

            showDialogSintesi();
        }

    });

方法showDialogSintesi是:

public void showDialogSintesi(String nome) {
    android.app.FragmentManager fm = fragment.getFragmentManager();
    DialogFragment dialog = DialogSintesi.newInstance("Info");
    dialog.show(fm,"");

}

我尝试显示这个对话框,但是它的工作时间很长! 对不起我的英语不好。 THA

2 个答案:

答案 0 :(得分:0)

检查您是否正在使用 android.support.v4.app或android.app在导入和声明片段相关变量的代码中始终如一。

答案 1 :(得分:0)

尝试使用onCreateDialog替换onCreateView:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    View view = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
            R.layout.popup_campagne_salvate, container);

    TextView brownModelli = (TextView) view.findViewById(R.id.textBrownModelliNumero);
    TextView brownArticoli = (TextView) view.findViewById(R.id.textBrownArticoliNumero);
    TextView blankModelli = (TextView) view.findViewById(R.id.textBlankModelliNumero);
    TextView blankArticoli = (TextView) view.findViewById(R.id.textBlankArticoliNumero);
    TextView pedModelli = (TextView) view.findViewById(R.id.textPedModelliNumero);
    TextView pedArticoli = (TextView) view.findViewById(R.id.textPedArticoliNumero);

    builder.setView(view);
    builder.setTitle("Sintesi Campagna");

    Dialog dlg = builder.create();
    return dlg;
}

其余的应该和你一样。 您可以在此过程中填写TextView。