DialogFragment突然改变大小

时间:2017-08-10 22:14:32

标签: java android android-dialogfragment

我有一个扩展DialogFragment的类。当我单击按钮时,对话框显示。第一次是正常的,我的意思是大小是对话框的布局之一。但是,当我关闭对话框并单击第二,第三,...时间的按钮时,对话框覆盖了所有屏幕,我根本不知道为什么。总是调用所有方法,为什么会发生这种情况呢?

这是DialogFragment的实现:

public class DialogFragmentAzione extends DialogFragment
{
private View view;
private SetVocabulary setVocabulary;
private LinkedList<String> linkedListGruppi;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    if(getArguments().getSerializable(Constants.codiceArgomentoDialogFragment) instanceof Set)
        setVocabulary = (SetVocabulary) getArguments().getSerializable(Constants.codiceArgomentoDialogFragment);
    else
        linkedListGruppi = (LinkedList<String>) getArguments().getSerializable(Constants.codiceArgomentoDialogFragment);
    view = inflater.inflate(R.layout.layoutdialogfragment, container);
    view.findViewById(R.id.aggiungiDialog).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            EditText editText = (EditText)view.findViewById(R.id.editTextAggiungi);
            String text = editText.getText().toString();
            if(text.contains(" ")||text.contains(".")||text.contains(",")||text.contains(";")||text.contains("-")||text.contains("_")
                    ||text.contains(":")||text.contains("@")||text.contains("ç")||text.contains("°")||text.contains("#")||text.contains("§")
                    ||text.contains("{")||text.contains("}")||text.contains("[")||text.contains("]")||text.contains("(")||text.contains(")")
                    ||text.contains("(")||text.contains("!")||text.contains("%")||text.contains("£")||text.contains("&")||text.contains("/")
                    ||text.contains("=")||text.contains("?")||text.contains("'")||text.contains("^")||text.contains("<")||text.contains(">")
                    ||text.contains("<")||text.contains("|")||text.contains("€")||text.contains("+")||text.contains("*"))
                Toast.makeText(getActivity(),"Il testo contiene caratteri non ammessi",Toast.LENGTH_SHORT).show();
            else if(text.length()<3)
                Toast.makeText(getActivity(),"Il testo è troppo corto",Toast.LENGTH_SHORT).show();
            else if(text.length()>15)
                Toast.makeText(getActivity(),"Il testo è troppo lungo",Toast.LENGTH_SHORT).show();
            else
            {
                if(setVocabulary!=null)
                    setVocabulary.add(text);
                else
                    linkedListGruppi.add(text);
                dismiss();
            }
        }
    });
    return view;
}

@Override
public void onActivityCreated(Bundle bundle)
{
    getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
    setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme);
    super.onActivityCreated(bundle);
}
}

以下是对话框的创建:

dialogFragment = new DialogFragmentAzione();
bundleFragment = new Bundle();
bundleFragment.putSerializable(Constants.codiceArgomentoDialogFragment,setVocabulary);
dialogFragment.setArguments(bundleFragment);

getActivity().findViewById(R.id.floatingActionButton).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            dialogFragment.show(getActivity().getFragmentManager().beginTransaction(), "Dialog");
        }
    });

前4行只有一次

0 个答案:

没有答案